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

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

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

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

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

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

  1. Azure PowerShell
  2. PowerShell
  3. 目标计算机上的 PowerShell
  4. Service Fabric PowerShell。

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

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

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

【问题讨论】:

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


    【解决方案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 次,因为对于每台机器它可能不同。您认为这被认为是一个很好的自动化流程吗?
    • 但这一次是好的,也许你可以写一个脚本来提取命令。
    猜你喜欢
    • 1970-01-01
    • 2020-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-07
    相关资源
    最近更新 更多