TL;DR:清理 Windows 构建服务器,安装 MS Build Tools 2019 和 TFS 2013。 构建日志显示异常消息:找不到文件:MSBuild.exe(类型 FileNotFoundException)
如何在 TFS 2013 上的 XAML 文件中设置 MSBUILD 工具路径,配置为使用 MSBuild 2019 以及安装在我的开发盒上的 Visual Studio 2019 Enterprise。
更多信息:
我们为运行 2013 版本的 TFS 构建例程设置了多服务器。
一个控制器和几个代理服务器,没什么花哨的。 最近我添加了另一个用于 GUI 测试 - 我需要代理服务处于交互模式。
到目前为止的步骤:
安装了 TFS 2013,包括两个代理 - 连接到主控制器。 我安装构建工具版本 2019 我添加了标签来控制构建分布。
激活了构建,剩下的就是历史了。
我在这方面花了四天(令人沮丧)——我已经阅读了我能找到的所有 Stack Overflow TFS set toolpath 条目,以及一大堆奇怪的论坛,但似乎没有一个能解决我的问题。
看;每个人都在谈论 XAML 中的这个条目,上面写着 toolpath (或类似的) - 但是;我没看到。我们使用 TfvcTemplate.12.Xaml 的细微更改版本。
许多人还谈论这个用于编辑 XALM 文件的 GUI 工具,我可以在其中看到所有可用的不同选项(我猜) - 有人也可以帮助我吗?它肯定不能在 2019 年的 Enterprise 上开箱即用??? 所以;我安装了这个 Extension Process Template Editor,但是当我单击 XAML 文件时,当然没有任何反应,只是更多 XML :)
我现在在新服务器上添加了一些路径,我在其中看到安装了 msbuild.exe 的实例(请 MS/.NET 一起行动)
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin
C:\Program Files (x86)\MSBuild\12.0\Bin
请尽量不要乍一看就将其视为重复项。我知道它与其他问题类似 - 但是;细节决定成败。
使用 (XALM) 构建过程模板在 TFS 2013 中将工具路径设置为 MSBuild 2019
正如您所知,旧的 Visual Studio 版本将 msbuild 安装到
C:\Program Files (x86)\MSBuild\<version>\bin
中,并且显然 RunMSBuild 活动使用 ToolVersion + ToolArchitecture 来计算此路径。
VS 2019 构建工具改为安装它
C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin
并且 RunMSBuild 无法再计算正确的路径。您无法使用旧的 DefaultTemplate12.xaml 与 VS2019 构建工具集成。
要使其工作,您可以尝试修改 TFSBuildServiceHost.exe.config,并且您必须在构建服务器上安装 VS 2019 构建工具或 VS2019 版本才能使其工作。
更详细的步骤请按照Jonesy2488在此链接中的回答:如何让VS 2017与TFS 2017 XAML Builds一起工作。
此外,我们也可以尝试使用 MSBuild 任务代替 Visual Studio Build 任务,然后指定 MSBuild 16.0 的位置:
我通过将 TfvcTemplate.12.xaml 中 mtba:RunMSBuild 的 ToolVersion 更改为所需版本并将 MSBuildToolsPath 添加到 Windows 注册表来使其工作。
15.0 和 16.0 的注册表设置
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\15.0]
"MSBuildToolsPath"="C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\MSBuild\\15.0\\Bin\\amd64"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\16.0]
"MSBuildToolsPath"="C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\MSBuild\\Current\\Bin\\amd64"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\15.0]
"MSBuildToolsPath"="C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\MSBuild\\15.0\\Bin"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\16.0]
"MSBuildToolsPath"="C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\BuildTools\\MSBuild\\Current\\Bin"
除了前面的答案之外,以下路径适用于 Visual Studio 2022 独立构建工具...
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSBuild\ToolsVersions\17.0]
"MSBuildToolsPath"="C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\MSBuild\\Current\\Bin\\amd64"
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions]
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSBuild\ToolsVersions\17.0]
"MSBuildToolsPath"="C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\BuildTools\\MSBuild\\Current\\Bin"
注意:如果计算机上安装了 Visual Studio,则构建工具的路径将有所不同。 “BuildTools”文件夹将具有“Edition”标题。
32 位路径
C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin
64 位路径
C:\\Program Files (x86)\\Microsoft Visual Studio\\2022\\Community\\MSBuild\\Current\\Bin\amd64
将“社区”替换为您的 Visual Studio 版本,例如“专业”或“企业”(如果不同)