运行MSBuild时出错

Obs*_*nix 7 msbuild resharper visual-studio-2015

尝试通过我的机器上的批处理文件运行MSBuild时,我开始收到以下错误.

C:\ Program Files(x86)\ MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(283,22):错误MSB4086:尝试对"10.0.11000.0"进行数值比较,其值为" 10.0.11000.0"而不是数字,条件为''$(TargetPlatformVersion)'> = '10 .0.11000.0'".[MyProject.csproj]

这发生在解决方案中的几个不同项目中.

我目前正在运行VS2015(更新3).我在星期五从Update 2更新了.所以这可能是相关的.

基于在线的各种帖子(例如这个帖子),似乎(至少在过去的某个时刻)由Resharper引起.但是,我已将Resharper更新到最新版本,并在安装时运行修复,但无济于事.我甚至试图在Visual Studio中暂停它.

我还试图修复VS215安装本身.但我仍然得到错误.

我该如何解决这个错误?

更新

所以当我运行这个批处理文件时,它正在运行VisualStudioVersion=12.0.这似乎是问题的一部分.当我在12.0构建中重新命名它运行正常.

检查抛出异常的目标文件,您可以在第283行看到:

<PropertyGroup>
  <SdkIsRS1OrLater>False</SdkIsRS1OrLater>
  <SdkIsRS1OrLater 
    Condition="'$(TargetPlatformVersion)' &gt;= '10.0.11000.0'">True</SdkIsRS1OrLater>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

所以我不完全确定为什么会这样,但它似乎是来自MS的目标文件中的一个问题?

小智 3

尝试使用 VS2015 附带的批处理文件设置路径和环境变量,而不是手动设置 msbuild 路径和“VisualStudioVersion”,为此,请将以下内容添加到批处理文件中:

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"
Run Code Online (Sandbox Code Playgroud)

我不确定根本原因是什么,我怀疑 MSBuild 和目标文件版本不匹配。

有关上述批处理文件的详细信息,请参阅https://msdn.microsoft.com/en-us/library/f2ccy3wt.aspx 。

  • 我实际上使用了 `C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat` - VcVarsall 仅在安装 C++ 工具时才存在。VsDevCmd 是用于设置 dev 命令提示符的批处理文件。 (2认同)