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



visual-studio uwp (1)

我终于放弃了试图使这个行为与配置,但设法通过黑客注册表得到这个在生成机器上的工作。

我更改了以下注册表项:

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版本得到了我们的版本,并且在构建服务器的范围上受到限制。

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

症状:

在构建UWP项目时,我们得到了很多这样的错误:C:\ Program Files(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 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”

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

奇怪的是,nuget在执行包恢复时似乎找到了正确的版本。 在运行nuget.exe restore命令时,我们看到这个日志: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 ...“[SNIP]

任何帮助或建议感激地收到 - 我在我的智慧结束:)





uwp