MSBuild不包含“VCTargetsPath”属性的值

我最近安装了Visual Studio 11开发人员预览版,现在我的VS 2010项目无法打开。 相反,我收到以下错误消息:

MSBuild不包含“VCTargetsPath”属性的值

我发现有人在Connect上报告了这个问题,微软的回应是:

微软于2011年12月2日下午5:25发布
你好Afshin,

感谢您的反馈。 您遇到的问题已修复下一个公开版本的Visual Studio。

Jim Griesmer
Visual C ++团队

太棒了。 那么如何恢复VCTargetsPath,以便我的项目能够再次运行?

“VCTargetsPath是在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 4.0中定义的工具集属性。

我浏览了registry中的VCTargetPath值,它具有以下值:

$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\ 

不知道从哪里去。 有什么build议么?

Gavin Pugh给出的解决scheme似乎可以解决这个问题,尽pipe我没有尝试。 卸载VS11的开发人员预览版后,我也遇到了这个问题。 我想我知道什么是错误的。

姆拉登·扬科维奇(Mladen Jankovic)走上正轨。 在我的机器上缺less以下两个(必要的)registry项之一:

  • HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0
    • 键名称: VCTargetsPath
    • types: REG_SZ
    • 值: $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
  • HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\4.0
    • 键名称: VCTargetsPath
    • types: REG_SZ
    • 值: $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\

(您可以通过键入在Windows中编辑registry项 在这里输入图像说明 + R + +registry编辑器input)

对我而言,上面列出的第二个价值就是缺失的价值。 在我添加之后,我能够再次与我的项目一起工作。

这是对我的欺骗:

将位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.0名为DefaultToolsVersionregistry值从2.0更改为4.0 。 在Wow6432Node也做同样的事情。

“Mladen Jankovic”build议的registry编辑方法不适合我。

我刚刚在Visual Studio 2010上运行了修复(运行VS2010安装光盘上的setup.exe,或通过控制面板 – >程序调用“卸载”)。 它为我做了诡计。

您还应该再次运行SP1安装。

对于它的价值,我的“加载项”(包括Incredibuild)在此之后performance良好。 他们不需要重新安装或修理。 我的设置/窗口/debugging器的位置也被保留。

很明显,只有卸载VS11的开发人员预览版才会出现此问题: http ://www.gamefromscratch.com/post/2011/12/15/Do-not-remove-Visual-Studio-2011-developer-preview !. ASPX

对于那些在这里通过谷歌search:

如果以前安装VS 2015或vs2010之后的任何更新版本,然后卸载,则下面是解决scheme。

在下面的错误消息中:

无法评估属性expression式“$([MSBuild] :: ValueOrDefault('$(VCTargetsPath)','$(MSBuildExtensionsPath32)\ Microsoft.Cpp \ v4.0 \ V140 \'))”

VS2015的版本号是14.0。 不幸的是,VS2015 / 2012卸载程序忘记了其中一个registry项,当您返回VS2010时会导致该错误。

去开始/运行/ regedit>

查找HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ ToolsVersions \ 14.0(12.0)

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Microsoft \ MSBuild \ ToolsVersions \ 14.0(12.0)

如果在这里有一个键14.0 / 12.0, 删除它,你的VS2010将有望再次工作。

呃,我终于find了答案,顺便说一句,没有给我同样的错误信息 – 我得到:

错误MSB4019:未find导入的项目“C:\ Microsoft.Cpp.Default.props”。 确认声明中的path是正确的,并且该文件存在于磁盘上。

出于某种原因,它在32位构build中运行良好,但不是64位构build。

无论如何,解决scheme是将所有VCTargetPath*键从HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild ToolsVersions\14.0HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0 。 他们错过了我。

其实我只复制VCTargetsPathVCTargestPath14因为复制是非常繁琐的。 似乎是足够的VC ++ 2015。

如果使用VS 2010 SP1,请转到控制面板| 卸载程序 ,卸载/更改VS 2010 SP1并select重新申请SP1。 它为我工作。

我一直有这个相同的问题,并发现工具集标签没有在项目节点中设置

设置工具版本为我解决了它

我使用了C:\ Windows \ SysWOW64 \ regedit.exe并进入HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ MSBuild \ 3.5,并在3.5版本的文件夹中列出了defaulttoolsversion 2.0,所以我将其修改为3.5,现在一切正常。