首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TFSBuild 2013无法更改msbuild版本

TFSBuild 2013无法更改msbuild版本
EN

Stack Overflow用户
提问于 2016-09-21 03:48:59
回答 2查看 1.2K关注 0票数 2

我有一个TFSBuild 2013服务器,我们现在正试图用它来构建UWP项目,但是我们似乎不能让它使用正确的MSBuild版本。

症状:

在构建UWP项目时,我们会得到许多错误,例如: C:\Program (x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets (283):在“$(TargetPlatformVersion)‘>= '10.0.11000.0'”条件下,尝试对"10.0.11000.0“进行数值比较,计算结果为"10.0.11000.0”,而不是一个数字。

许多关于此错误的报告都告诉您要确保TFS构建使用的是正确的MSBuild版本。问题就在这里。我们似乎不能让构建服务器使用正确的版本。

下面是我们尝试过的(构建定义使用TfvcTemplate.12.xaml模板):

  • 在生成服务器上安装2015年生成工具(更新3)
  • 在构建服务器上安装VS2015 (Yuck)
  • 构建定义中MSBuild参数的各种组合。(/tv:14.0 & /p:VisualStudioVersion=14.0)
  • Microsoft.Net.Compilers nuget封装
  • 编辑TfvcTemplate.12.xaml模板并设置"Run MSBuild“步骤将"ToolsVersion”设置为"14.0“。(注意,在这个版本的模板中没有"ToolsPath“设置,所以我不能这样做)。
  • 在每个ToolsVersion=文件中设置.csproj“14.0”

无论我们更改了什么,我们都无法让Build使用14.0版本的MSBuild。

奇怪的是,nuget在执行包还原时似乎找到了正确的版本。在日志中,我们在运行nuget.exe还原命令: MSBuild自动检测:使用msbuild '14.0‘从'C:\Program (x86)\MSBuild\14.0\bin’中看到这一点。

但是在日志中,所有的错误都是从这里开始的(注意:错误的工具版本):C:\Program (x86)\MSBuild\12.0\bin\MSBuild.exe /nologo /noconsolelogger“C:\Builds.”狙击

感激地收到任何帮助或建议-我已经束手无策:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-22 01:45:11

最后,我放弃了通过配置使其正常运行的尝试,但通过对注册表进行黑客攻击,成功地使其在构建机器上正常工作。

我更改了以下注册表项:

代码语言:javascript
复制
HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild\12.0\MSBuildOverrideTasksPath
HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\12.0\MSBuildToolsPath

在这两种情况下,我都更改了

发自:

代码语言:javascript
复制
C:\Program Files (x86)\MSBuild\12.0\bin\

至:

代码语言:javascript
复制
C:\Program Files (x86)\MSBuild\14.0\bin\

免责声明:我不知道这会有什么其他影响,但它使用正确的MSBuild版本获得了我们的构建,并且在范围上仅限于构建服务器。

票数 1
EN

Stack Overflow用户

发布于 2021-02-16 01:06:31

编辑TfvcTemplate.12.xaml模板并设置"Run MSBuild“步骤将"ToolsVersion”设置为"14.0“。

如果您还在MSBuild 12.0配置文件中添加以下部分(如描述的这里),这将有效。

代码语言:javascript
复制
<msbuildToolsets>
    <toolset toolsVersion="14.0">
        <property name="MSBuildToolsPath" value="C:\Program Files (x86)\MSBuild\14.0\Bin\" />
    </toolset>
</msbuildToolsets>

请注意,MSbuild目录中也有amd64文件夹,它有自己的配置文件

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39607222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档