powershell 在ADO管道上的Invoke-Build中使用vswhere查找MSBuild

6pp0gazn  于 2022-11-10  发布在  Shell
关注(0)|答案(1)|浏览(124)

在我的本地机器上,我可以很容易地使用MSBuild。但是,当我尝试在ADO管道上使用与我在本地计算机上所做的相同的PowerShell脚本时,我收到的投诉是MSBuild不是一个cmdlet。这使我相信我需要使用vswhere在代理机器上找到MSBuild,然后使用它来构建我的SLN。我在网上四处看看,没有任何运气,所以我想我应该在这里问问,以防有人以前处理过这样的事情。

wrrgggsh

wrrgggsh1#

我假设您正在使用“Invoke-Build”PowerShell模块,这就是您在ADO管道中调用脚本的方式(即,您正在从PowerShell的目录中运行Invoke-Build,该目录包含调用您的构建脚本的任务)
如果是这样的话,它附带了一个名为“Resolve-MSBuild”的内置帮助器命令,它完全可以执行您想要的操作。
如果添加以下语句:

Set-Alias MSBuild (Resolve-MSBuild)

在.Build.ps1脚本的顶部(在任何任务语句之前),这应该创建一个命令别名,该命令别名将在每次调用时运行实际的msbuild。

相关问题