c# - 使用 (XALM) 构建过程模板在 TFS 2013 中将工具路径设置为 MSBuild 2019
问题描述
TL;DR:安装干净的 Windows 构建服务器、MS Build Tools 2019 和 TFS 2013。构建日志显示异常消息:找不到文件:MSBuild.exe(类型 FileNotFoundException)
如何在 TFS 2013 上的 XAML 文件中设置 MSBUILD 工具路径,配置为使用 MSBuild 2019 和安装在我的开发盒上的 Visual Studio 2019 Enterprise。
- 请提供与 TFS2013(更新 3)一起使用的完整 XAML 文件,并带有明确的自定义 msbuild 路径。
更多信息:
我们为运行 2013 版的 TFS 构建例程设置了多服务器。
一个控制器和几个代理服务器到处都是,没什么特别的。最近我为 GUI 测试添加了另一个 - 我需要代理服务处于交互模式。
到目前为止的步骤:
安装了 TFS 2013,包括两个代理 - 链接到主控制器。我安装了 Build Tools 2019 版我添加了标签来控制构建分发。
激活一个构建,剩下的就是历史了。
我已经有四天(令人沮丧)了——我已经阅读了我能找到的每一个 Stack Overflow TFS设置工具路径条目,以及一大堆奇怪的论坛,但似乎没有一个能引起我的注意。
- 我什至将您看到的两条路径都添加到了 Windows 环境 PATH 变量中。我不确定那会做些什么了。
看; 每个人都在谈论 XAML 中的这个条目,上面写着toolpath(或类似的) - 但是;我没看到。我们使用 TfvcTemplate.12.Xaml 的小改动版本。
许多人还谈论这个用于编辑 XALM 文件的 GUI 工具,在那里我可以看到所有可用的不同选项(我想)——有人也可以帮助我吗?它肯定不能与 2019 年企业开箱即用????所以; 我安装了这个扩展过程模板编辑器,但是当我单击 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 构建一起工作。
此外,我们也可以尝试使用 MSBuild 任务而不是 Visual Studio Build 任务,然后指定 MSBuild 16.0 的位置:
希望这可以帮助。
推荐阅读
- regex - 如何在scala中使用正则表达式模式匹配替换部分字符串?
- java - java - 如何使用Object参数而不是java中的实际参数类型调用方法?
- react-native - 反应本机文本输入滚动问题
- javascript - 按钮在 Firefox 中不起作用,但在 Chrome 中起作用
- azure - portal.azure.com 仪表板上 VM 诊断指标的数字似乎不正确
- r - rmarkdown - 在 site.yml 中指定输出主题会删除导航栏
- css - 选择元素最后一个css
- api - Amadeus API 返回所有请求的内部错误(生产密钥)
- android - 每个线程在 Android 中都有自己的处理程序吗?
- php - 上传的图片坏了。Laravel 日志显示 production.ERROR: Call to undefined function Illuminate Illuminate\Filesystem\finfo_file()