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

Dmi*_*riy 5 c++ msbuild visual-studio-2012

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

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

D:\ folder\SomeProject.vcxproj:错误:无法读取项目文件"SomeProject.vcxproj".D:\ folder\SomeProject.vcxproj(102,3):找不到导入的项目"C:\ Microsoft.Cpp.props".确认声明中的路径是否正确,以及该文件是否存在于磁盘上.

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

D:\ folder\SomeProject.vcxproj:错误:无法读取项目文件"SomeProject.vcxproj".D:\ folder\SomeProject.vcxproj(102,3):找不到导入的项目" 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)"
Run Code Online (Sandbox Code Playgroud)

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

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