运行MSBuild时出错

时间:2016-07-04 09:25:44

标签: visual-studio-2015 msbuild resharper

尝试通过我的计算机上的批处理文件运行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更新了。所以这可能与此有关。

基于各种在线帖子(例如this一个),它似乎(至少在过去的某个时刻)由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>

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

3 个答案:

答案 0 :(得分:3)

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

call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat"

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

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

答案 1 :(得分:1)

当我们在Teamcity中进行构建时,我遇到了同样的错误。在更改teamcity构建步骤配置以使用MSBuild工具2015 for MSBuild版本和14.0作为MSBuild工具版本后,我开始工作了。 enter image description here

答案 2 :(得分:0)

是的,我怀疑是相同的 - 似乎有人做了替换并放了&gt;符号而不是>。 我在该文件中找到了3个&gt;条目,其逻辑上必须是> PS:这不是答案,评论不支持字符筛选

上面的斜体文字有点太快了,我以为我用吸烟枪来解决这个问题,但重新检查.targets文件中的代码显示&gt;在条件中正确使用 - 一个人必须按照这些标志进行编码 MSBuild Conditions,虽然它仍然不清楚为什么要尝试将字符串与&#39;&gt; =&#39;进行比较。 在其他两种情况下使用它不太有意义。无论如何,我怀疑你是对的,这是特定目标文件的问题。