MSBuild不包含“VCTargetsPath”属性的值

问题描述:

我最近安装了Visual Studio 11 Developer Preview来试用它,现在我的VS 2010项目不会打开。相反,我得到了以下错误消息:MSBuild不包含“VCTargetsPath”属性的值

的MSBuild不包含在“VCTargetsPath值”属性

我发现有人报告了这个问题here on Connect,并从微软的回应是:

发布Microsoft在12/2/2011于下午5:25
嗨阿夫欣,

感谢您的反馈。您遇到的问题已针对下一个公开发布的Visual Studio修复。

吉姆Griesmer
的Visual C++团队

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

“VCTargetsPath是在HKEY_LOCAL_MACHINE \ SOFTWARE定义\微软的工具箱财产\的MSBuild \ ToolsVersions \ 4.0”。

我浏览到在注册表中VCTargetPath值,并将它的数值:

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

不知道该从哪里出发。有什么建议么?

+1

这些预览版本小于alpha质量。除非您使用虚拟机,否则切勿在生产机器上安装RTM以外的任何其他设备修复VS2010,然后重新安装。 – 2011-12-14 00:11:28

+1

客户预览也会发生这种情况,而不仅仅是您提到的那些“预先预先设置”。 – gparent 2012-03-08 00:29:09

下面是做把戏对我的事:

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

“Mladen Jankovic”建议的注册表编辑方法不适用于我。

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

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

对于它的价值,我的'加载项'(包括Incredibuild)在此之后表现良好。他们不需要重新安装或修理。我的设置/窗口/调试器布局也被保留。 http://www.gamefromscratch.com/post/2011/12/15/Do-not-remove-Visual-Studio-2011-developer-preview!.aspx

这似乎是合理的解决方案加文·普格了会解决这个问题,虽然我没有尝试:

显然,这个问题,如果你卸载VS11的开发者预览版只提出了自己。卸载VS11的开发人员预览版后,我也遇到了这个问题。我想我知道什么是错误的。

Mladen扬科维奇是在正确的轨道上。其中遵循两个(必要时)的注册表项是缺少我的机器上:

  • 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\

(您可以通过键入enter image description here + R +注册表编辑器+输入编辑在Windows注册表项)对我而言,上面列出的第二个价值就是缺少的价值。添加完成后,我能够再次与我的项目合作。

+2

也为我工作。第二个键(Wow6432Node)在x64系统上的VS11 CTP不稳定后丢失。 – 2012-02-25 08:46:04

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

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

设置设置工具版本解决了这个问题对我来说

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

对于那些谁在这里通过谷歌搜索:

如果你以前安装VS 2015年或VS VS2010后的任何更新版本,然后卸载,这是你的解决方案。

在下面的错误消息:

无法评估属性表达式 “$([MSBuild的] :: ValueOrDefault( '$(VCTargetsPath)',“$(MSBuildExtensionsPath32)\ Microsoft.Cpp \ V4 。“)”

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

转到开始/运行/注册表编辑器>

查找 HKEY_LOCAL_MACHINE \ SOFTWARE \微软\的MSBuild \ ToolsVersions \ 14.0(12.0为好)

而且

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

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

唉,我终于找到了这个答案,这亦没有给我同样的错误信息 - 我得到:

错误MSB4019:导入项目“C:\ Microsoft.Cpp.Default。道具“没有找到。确认声明中的路径是正确的,并且该文件存在于磁盘上。

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

无论如何,解决方法是将所有VCTargetPath*密钥从HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild ToolsVersions\14.0复制到HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\14.0。他们错过了我。

其实我只复制了VCTargetsPathVCTargestPath14,因为复制很繁琐。似乎对于VC++ 2015来说已经足够了。