Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何找出Visual Studio 2012中VCTargetsPath值的来源?_C++_Visual Studio 2012_Msbuild - Fatal编程技术网

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

C++ 如何找出Visual Studio 2012中VCTargetsPath值的来源?,c++,visual-studio-2012,msbuild,C++,Visual Studio 2012,Msbuild,这个问题被问了很多次,但之前的回答对我没有帮助,或者我做错了什么 无论如何,我有一个Visual Studio 2012解决方案,它主要由.NET项目组成,但也有几个VC++项目,每当我打开解决方案时都无法加载。“解决方案”输出中每个VC++项目的错误为: D:\folder\SomeProject.vcxproj:错误:无法读取项目 文件“SomeProject.vcxproj”。D:\folder\SomeProject.vcxproj(102,3): 找不到导入的项目“C:\Microso

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

无论如何,我有一个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 repair,但没有效果。我目前无法重新安装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版本更新5。

来自注册表HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions项。@HansPassant,谢谢。我的
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions
密钥为空。根据其他一些答案,我尝试将
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\12.0\11.0\VCTargetsPath
HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0\11.0\VCTargetsPath
设置为正确的路径,但运气不佳。Hmya,当你破解这些密钥时,你只能确保安装程序的修复功能也不能修复问题。不要让事情变得更糟,运行安装程序。