MSBuild不包含"VCTargetsPath"属性的值

sup*_*tic 55 msbuild projects-and-solutions visual-studio-2010 visual-studio visual-studio-2012

我最近安装了Visual Studio 11 Developer Preview来试用它,现在我的VS 2010项目将无法打开.相反,我收到以下错误消息:

MSBuild不包含"VCTargetsPath"属性的值

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

微软发表于2011年12月2日下午5:25
Hi Afshin,

感谢您的反馈.您遇到的问题已修复,适用于下一个公开发布的Visual Studio.

Jim Griesmer
Visual C++团队

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

"VCTargetsPath是一个工具集属性,在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0中定义."

我浏览了注册表中的VCTargetPath值,它具有以下值:

$(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\
Run Code Online (Sandbox Code Playgroud)

不知道从哪里开始.有什么建议?

Jon*_*rlo 78

Gavin Pugh给出的解决方案似乎是合理的,但是我没有尝试过.卸载VS11的开发者预览版后,我也遇到了这个问题.我想我知道什么是真的错了.

Mladen Jankovic走上正轨.我的机器上缺少以下两个(必要的)注册表项之一:

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

(您可以通过键入来编辑Windows中的注册表项 在此输入图像描述+ R + +注册表编辑器输入)

对我来说,上面列出的第二个值是缺少的值.在我添加它之后,我能够再次使用我的项目.

  • 也为我工作过.在x64系统上卸载VS11 CTP后,第二个密钥(Wow6432Node)丢失了. (2认同)
  • 我在 VS2017 中也遇到了同样的问题。对于 VS2017,在注册表中设置的正确值是 $(MSBuildExtensionsPath32)\Microsoft.Cpp\v4.0\v140\ (2认同)

Mla*_*vić 6

这对我来说很有用:

命名更改注册表值DefaultToolsVersion位于HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\4.02.04.0.也做同样的事情Wow6432Node.