从Azure DevOps管道启动VS 2019开发人员PowerShell

时间:2020-01-23 15:59:05

标签: powershell azure-devops virtual-machine azure-pipelines

我们已经配置了Windows虚拟机,并在其中部署了代理来构建代码和运行脚本。

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

  1. Windows PowerShell
  2. 用于VS 2019的开发人员PowerShell。

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

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

  1. Azure PowerShell
  2. PowerShell
  3. 目标计算机上的PowerShell
  4. 服务结构PowerShell。

以上哪个代表“ VS 2019开发者PowerShell”?

PowerShell具有这种特殊风格的原因是:

  1. 需要具有一些.NET Framework工具(CorFlags.exe),这些工具只能在“ VS 2019开发者PowerShell”中访问,而不能在其他工具中访问。

1 个答案:

答案 0 :(得分:1)

用于VS 2019的开发人员PowerShell 是已导入模块的常规PowerShell,您可以通过这种方式确切地看到什么:

  • 转到“开始”菜单,然后搜索用于VS 2019的开发人员PowerShell
  • 右键单击它,然后打开文件位置-您将获得以下信息:

enter image description here

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

  • 您将在位置中看到,该位置通过以下命令运行常规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}"

enter image description here

现在,如果您打开PowerShell并在此处运行脚本:

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

您将获得适用于VS 2019的Developer PowerShell,CoreFlags.exe将起作用:

enter image description here

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

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