gpt4 book ai didi

msbuild - 从 Azure Devops 中的命令行任务运行 MSBuild

转载 作者:行者123 更新时间:2023-12-02 17:37:37 26 4
gpt4 key购买 nike

我正在尝试在 Azure Devops 上执行 msbuild。因此,我无法使用提供的 MSBuild 任务。

当我使用命令行任务时,该命令无法识别。在我的本地计算机上,我在使用 msbuild 之前加载 vcvarsall.bat。但我一直无法弄清楚如何在 Azure Devops 中获取该路径。似乎也不是 Azue Devops 的开发命令提示任务。

关于如何从命令行任务或批处理脚本任务使用 msbuild 有什么想法吗?使用他们的托管 VS 代理。

最佳答案

以受支持的方式执行此操作的最佳方法是使用 vswhere。以下脚本将安装 vswhere(使用 Chocolatey),然后查询可以找到 msbuild 的安装程序注册表。如果需要,请将 -latest 替换为更具体的版本:

choco install vswhere
for /f "tokens=*" %%i in ('vswhere -latest -requires Microsoft.Component.MSBuild -find MSBuild\**\Bin\MSBuild.exe -nologo') do set msbuildpath="%%i"

echo "##vso[task.setvariable variable=msbuildpath]%msbuildpath%"

这会将 msbuild 的路径保存到环境变量 %msbuildpath% 以及管道变量(对于此阶段)$(msbuildpath)

然后,您可以使用第二个运行命令行任务并传入 $(msbuildpath),也可以通过调用以下命令从上述同一脚本片段中简单地调用 MsBuild:

%msbuildpath%

这将确保您的脚本仍然有效,即使 Microsoft 升级其镜像并移动了一些内容(确实发生了)。

您还可以使用 wgetinvoke-webrequest -outfile 从以下位置获取 vswhere:

https://github.com/Microsoft/vswhere/releases/latest/download/vswhere.exe

其他samples for vswhere syntax can be found on the project wiki ,包括 PowerShell 的语法。

关于msbuild - 从 Azure Devops 中的命令行任务运行 MSBuild,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54986156/

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