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
名为DefaultToolsVersion
registry值从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.0
到HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0
。 他们错过了我。
其实我只复制VCTargetsPath
和VCTargestPath14
因为复制是非常繁琐的。 似乎是足够的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,现在一切正常。