这个问题被多次询问,但之前的答案对我没有帮助,或者我做错了什么。
无论如何,我有一个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.