加载 Visual Studio 2015 C++ 项目时出错,如何调试

Posted

技术标签:

【中文标题】加载 Visual Studio 2015 C++ 项目时出错,如何调试【英文标题】:Error loading visual studio 2015 C++ project, how to debug 【发布时间】:2017-05-18 07:45:35 【问题描述】:

我在远程目录上有一个 VS 2015 C++ 项目,我想在两台计算机之间共享。在一台计算机上加载正常(它有 Microsoft Visual Studio Community 2015 版本 14.0.25431.01 更新 3 Microsoft .NET Framework 版本 4.6.01055)在另一台计算机上加载失败(它也有 Microsoft Visual Studio Community 2015 版本 14.0.25431.01更新 3 Microsoft .NET 框架 版本 4.6.01055)。当加载失败时,我会收到(信息量不大的消息)

TargetImager.vcxproj: The application which this project type is based on 
was not found. Please try this link for further information

[链接完全没用!]

我在解决方案中打开了项目文件(不记得我是如何做到的),它显示了许多警告,例如。

严重性代码描述项目文件行抑制状态 警告命名空间“http://schemas.microsoft.com/developer/msbuild/2003”中的元素“PropertyGroup”在命名空间“http://schemas.microsoft.com/developer/msbuild/2003”中具有无效的子元素“PlatformToolSet”。预期的可能元素列表:'Property、VisualStudioVersion、MinimumVisualStudioVersion、AdditionalFileItemNames、AllowUnsafeBlocks、AppConfigForCompiler、ApplicationIcon、ApplicationRevision、ApplicationVersion、AppDesignerFolder、AspNetConfiguration、AssemblyKeyContainerName、AssemblyKeyProviderName、AssemblyName、AssemblyOriginatorKeyFile、AssemblyOriginatorKeyFileType、AssemblyOriginatorKeyMode、AssemblyType、AutoGenerateBindingRedirects、AutorunEnabled、BaseAddress、BootstrapperComponentsLocation , BootstrapperComponentsUrl, BootstrapperEnabled, CharacterSet, CheckForOverflowUnderflow, CLRSupport, UseDebugLibraries, CodePage, Configuration, ConfigurationName, ConfigurationOverrideFile, CreateDesktopShortcut, CreateWebPageOnPublish, CurrentSolutionConfigurationContents, DebugSecurityZoneURL, DebugSymbols, DebugType, DefaultClientScript, DefaulthtmlPageLayout, DefaultTargetSchema, DefineConstants, DefineDebug, DefineTrace, DelaySign, DisableLangX , 鳕鱼eAnalysisAdditionalOptions, CodeAnalysisApplyLogFileXsl, .... 其他文件 H:\CodeProjects\QTProjects\TargetImager\TargetImager.vcxproj 20

这里是项目文件 XML 的部分

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
    <PlatformToolSet>v140</PlatformToolSet>

例如,它不喜欢这个 PlatformToolSet 设置。我不明白,因为它是 VS2015 的属性页中可以选择的设置。无论如何,我更改了此属性单击应用,然后将其更改回单击应用。它仍然像以前一样存在于项目文件中,并带有相同的错误消息,我还将设置更改为 v140_xp 只是为了验证它是否看到了它的新属性。

故事是我在一台装有 VS 2015 的计算机上工作,然后我想在另一台远程计算机上运行一些东西,但是到那时 VS 2015 被 VS 2017 取代,我在遥控器上安装了 VS 2017。我在 VS2017 上构建了项目,然后用 VS2015 回到本地 PC 做一些 QT 的事情(QT 插件在 VS2017 上尚不可用)。这没问题,但它拒绝在远程 VS2017 PC 上加载。所以我卸载了VS2017并用VS2015替换了它,该项目仍然没有加载到带有VS2015的远程PC上。

也许不知何故,我有一个 VS 2017 项目,由于某种原因,它在一台装有 VS2015 而不是另一台的计算机上加载,因此 VS 2015 不喜欢这些设置。

所以我尝试在我的项目文件有问题的远程计算机上创建一个新的 QT GUI 项目(我安装了 QtVsTools 扩展)。现在我收到一个错误(新的 win32 控制台应用程序也会出现同样的错误)

.../TarImager.vcxproj cannot be opened because its project type (.vcxproj) is not 
supported by this version of the application.

To open it please use a version of the project that supports it.

据我所知 .vcxproj 自 MS VS 2010 起就已受支持

知道如何调试吗?

【问题讨论】:

你检查过输出窗口吗?这可以在错误消息行之前为您提供更多信息 您是否尝试过在第二台计算机上重建项目(或“解决方案”)?听起来它不知道在哪里查找文件。 它甚至不会加载项目,因此我看不到项目属性或任何文件。我所做的是将项目文件加载到解决方案中,然后它标记了许多警告 该警告没有任何意义。您正在使用 XML 编辑器查看 .vcxproj 文件,当 XML 内容与架构不匹配时,它会生成警告。 PlatformToolset 在 2003 年不存在。关注错误消息,它告诉您 C++ 工具不可用。所以VS2015根本没有正确安装。 IIRC 它已经是跳过在 VS2015 安装程序中安装 C++ 支持的选项。话又说回来,无缘无故重装VS版本确实指向其他问题,可能机器的注册表太损坏了。 你可能是对的,即使我卸载了 VS2017,Windows 似乎也仍然安装了它。即使 VS2015 是全新安装的,我也必须安装 VS2015 可再发行组件,我正在尝试修复。 【参考方案1】:

Visual Studio 安装已损坏,我修复了安装,然后能够再次创建项目。如果你遇到奇怪的项目加载错误,那么可能是你的 VS 安装搞砸了。

【讨论】:

以上是关于加载 Visual Studio 2015 C++ 项目时出错,如何调试的主要内容,如果未能解决你的问题,请参考以下文章

带有 Visual Studio 2013(C++) 的 OpenCV:findContours 断点错误

C++学习---Visual Studio 2015 C++使用教程

Visual Studio 2015 不能使用 C++

在 Microsoft Visual Studio 2015 的 C++ 项目中包含 Armadillo C++ 库

Visual Studio 2015 Update 1 中的 C++ 内部编译器错误

如何在 Visual Studio 2015 中成功导出 C++ 项目模板?