如何找出Visual Studio 2012中VCTargetsPath值的来源?

时间:2016-02-25 09:46:42

标签: c++ visual-studio-2012 msbuild

这个问题被多次询问,但之前的答案对我没有帮助,或者我做错了什么。

无论如何,我有一个Visual Studio 2012解决方案,主要由.NET项目组成,但是有几个VC ++项目,每当我打开解决方案时都无法加载。 '解决方案'中每个VC ++项目的错误输出是:

  

D:\ folder \ SomeProject.vcxproj:错误:无法读取项目   file" SomeProject.vcxproj"。 D:\ folder \ SomeProject.vcxproj(102,3):The   导入的项目" C:\ Microsoft.Cpp.props"没找到。确认它   声明中的路径是正确的,那个文件   存在于磁盘上。

项目本身使用$(VCTargetsPath)宏来解析文件夹,但由于某种原因它失败了。我尝试了几种解决方案,包括更新注册表和设置环境变量。唯一值得注意的变化是我将VCTargetsPath环境变量设置为有效文件夹,例如C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110。重新加载解决方案后,我得到了以下输出:

  

D:\ folder \ SomeProject.vcxproj:错误:无法读取项目   file" SomeProject.vcxproj"。 D:\ folder \ SomeProject.vcxproj(102,3):The   导入的项目" D :\ Microsoft.Cpp.props"没找到。确认它   声明中的路径是正确的,那个文件   存在于磁盘上。

我尝试从控制面板运行VS修复,但它没有帮助。我目前无法重新安装Visual Studio,因为我无法访问公司使用的安装文件。我提出的唯一可行的解​​决方法是从CLI构建MSBuild并在那里设置VCTargetsPath,如下所示:

$TargetsPath = 'C:\Program%20Files%20(x86)\MSBuild\Microsoft.Cpp\v4.0\v110\'
msbuild /v:$Verbosity /m /t:$Target /P:Configuration=$Configuration /P:VCTargetsPath=$TargetsPath /P:TreatWarningsAsErrors=false "$($Solution.FullName)"

解决方案构建得很好。但是,我确实需要正确加载到VS解决方案中,因此这种解决方法只能解决我的一些问题。

最后,我想,我的问题是如何在Visual Studio 2012环境中设置或覆盖VCTargetsPath宏?或者如何找出这个宏值的来源?我使用的是Visual Studio 2012 - 版本11.0 Update 5.

0 个答案:

没有答案