从 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 管道