每个项目的TargetPlatformVersion在哪里?

时间:2013-01-02 20:23:21

标签: visual-studio-2012 windows-phone windows-phone-8

我有一个带有Windows Phone 8 C#项目和Windows Phone 8 C ++库的Visual Studio 2012解决方案。我把它移到了另一台电脑上。现在,当我尝试打开解决方案时,库项目无法在控制台中加载以下消息:

MyLib.vcxproj : error  : Unable to read the project file "MyLib.vcxproj".  
MyLib.vcxproj(620,3): The imported project "C:\Program Files (x86)\MSBuild\Microsoft\WindowsPhone\v7.0\Microsoft.Cpp.WindowsPhone.7.0.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

当我查看项目文件时,我在第620行找到以下内容:

<Import Project="$(MSBuildExtensionsPath)\Microsoft\WindowsPhone\v$(TargetPlatformVersion)\Microsoft.Cpp.WindowsPhone.$(TargetPlatformVersion).targets" />

所以看起来环境变量TargetPlatformVersion的值不知何故。

然后我在这台机器上创建了另一个解决方案,也就是C#/ C ++组合。那个打开并编译并运行,nae problemo。查看新创建的库中的项目文件,它在末尾附近有一条相同的<Import>行。

现在,解决方案复制可能并不完美。我没有复制所有文件 - 只是我认为相关的文件 - .sln,.vcxproj。,但不是.sdf而不是.suo。

看起来缺少某些东西 - 没有复制在解决方案或项目级别定义TargetPlatformVersion值的文件,现在Visual Studio选择了错误的默认值。毋庸置疑,WP7.0与它无关,它都是WP8。

知道这个设置在哪里?在项目和解决方案中都没有提到TargetPlatformVersion。

3 个答案:

答案 0 :(得分:0)

经过几次重新开放和其他毫无意义的行动之后,它自行消失了。奥基,怪异的东西。不知道为什么。 SVN未检测到项目文件的任何更改。

答案 1 :(得分:0)

我也有这个问题,解决方案是在计算机上安装最新的Windows Phone SDK(此时是SDK V8.0)(显然它有以前的版本版本或根本没有安装)。

答案 2 :(得分:0)

Step1: Replace every occurrence of  $(MSBuildExtensionsPath) to 8.0 in your .vcxproj file
Step2: Restart Visual Studio

->Then You will get the error "The builds tools for v120 (Platform Toolset = 'v120') cannot be found"

To fix this:
if you are using visual 2012 right click on project name -> properties -> configuration properties -> general -> platform toolset -> Visual Studio 2012 (v110) or wp-v110

And You will be good to go!

Note: You can then revert the changes from 8.0 to $(MSBuildExtensionsPath) in your project file if you want. (The cause of the error is when you open a vs2012 project or its dependencies in vs2013)