从 Azure DevOps 管道启动适用于 VS 2019 的开发人员 PowerShell

Posted

技术标签:

【中文标题】从 Azure DevOps 管道启动适用于 VS 2019 的开发人员 PowerShell【英文标题】:Start Developer PowerShell for VS 2019 from Azure DevOps pipeline 【发布时间】:2021-10-15 01:39:40 【问题描述】:

我们已经配置了一个 Windows 虚拟机并在那里部署了一个代理来构建我们的代码和运行脚本。

在我们的 VM 中,我们使用了两种不同风格的 PowerShell 命令提示符:

    Windows PowerShell VS 2019 的开发人员 PowerShell。

我们如何从管道 YAML 脚本启动“VS 2019 的开发人员 PowerShell”并在那里执行我们签出的 .ps1 文件?

有几种 PowerShell 任务可以从管道启动,但不确定其中哪一种可以达到目的。它们是:

    Azure PowerShell PowerShell 目标计算机上的 PowerShell Service Fabric PowerShell。

以上哪个代表“VS 2019 的开发人员 PowerShell”?

这种特定风格的 PowerShell 背后的原因是:

    需要一些 .NET Framework 工具 (CorFlags.exe),这些工具只能在“VS 2019 的开发人员 PowerShell”中访问,而不能在另一个中访问。

【问题讨论】:

【参考方案1】:

适用于 VS 2019 的开发人员 PowerShell 是一个常规 PowerShell,其中导入了一个模块,您可以通过这种方式确切地看到:

转到“开始”菜单并搜索 Developer PowerShell for VS 2019。 右键单击它并打开文件位置 - 你会得到这个:

现在再次右键单击Developer PowerShell for VS 2019快捷方式和属性

您将在 位置 中看到使用一些命令运行常规 PowerShell:

C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -noe -c "&Import-Module """C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"""; Enter-VsDevShell bc97b47b"

现在,如果您打开 PowerShell 并在那里运行脚本:

&Import-Module "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\Common7\Tools\Microsoft.VisualStudio.DevShell.dll"; Enter-VsDevShell bc97b47b

您将获得适用于 VS 2019 的开发人员 PowerShell,CoreFlags.exe 将正常工作:

因此,您需要使用常规的 PowerShell 任务(您的选项 2)并在脚本请求时运行上述命令。

注意:您应该完全复制您在属性中看到的命令,在每台机器上它可能不同。

【讨论】:

如果有人必须在 100 台机器上调用“VS 2019 的开发人员 PowerShell”,她/他必须复制该命令 100 次,因为对于每台机器它可能不同。您认为这被认为是一个很好的自动化流程吗? 但这一次是好的,也许你可以写一个脚本来提取命令。

以上是关于从 Azure DevOps 管道启动适用于 VS 2019 的开发人员 PowerShell的主要内容,如果未能解决你的问题,请参考以下文章

Azure DevOps 管道 VS 测试失败。所有这些单元测试都在本地通过

使用调度程序和变量组运行 Azure DevOps CI 管道

Azure Devops 构建管道 - 未发布文件

如何从 Azure DevOps 中的部署后批准/部署后门调用 Powershell 脚本

从 azure devops 管道更新变量组

无法使用服务主体从发布管道访问 Azure Devops Git 存储库