gpt4 book ai didi

c# - TFSBuild 2013 无法更改 msbuild 版本

转载 作者:太空宇宙 更新时间:2023-11-03 12:39:20 26 4
gpt4 key购买 nike

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

症状:

在构建 UWP 项目时,我们会遇到很多这样的错误:C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets (283):尝试对计算结果为“10.0.11000.0”的“10.0.11000.0”进行数字比较一个数字,条件为“'$(TargetPlatformVersion)' >= '10.0.11000.0'”。

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

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

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

无论我们如何更改,我们都无法让生成代理使用 14.0 版的 MSBuild。

奇怪的是,nuget 在进行包恢复时似乎找到了正确的版本。我们在运行 nuget.exe 恢复命令时在日志中看到:MSBuild 自动检测:使用来自“C:\Program Files (x86)\MSBuild\14.0\bin”的 msbuild 版本“14.0”。

但是在日志的更下方,我们看到了所有错误开始的地方(注意:错误的工具版本):C:\Program Files (x86)\MSBuild\12.0\bin\MSBuild.exe/nologo/noconsolelogger "C:\Builds..."[片段]

非常感谢收到的任何帮助或建议 - 我无能为力:)

最佳答案

我最终放弃了尝试通过配置使其正常运行,但设法通过破解注册表使其在构建机器上运行。

我更改了以下注册表项:

HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild\12.0\MSBuildOverrideTasksPath
HKLM\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\12.0\MSBuildToolsPath

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

来自:

C:\Program Files (x86)\MSBuild\12.0\bin\

到:

C:\Program Files (x86)\MSBuild\14.0\bin\

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

关于c# - TFSBuild 2013 无法更改 msbuild 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39607222/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com