使用 Visual Studio Code 进行 PowerShell 开发Using Visual Studio Code for PowerShell Development

本文内容

PowerShell ISE 外,PowerShell 还高度支持 Visual Studio Code。此外,PowerShell Core 不支持 ISE,但是 Visual Studio Code 在所有平台上(Windows、macOS 和 Linux)均支持 PowerShell Core

通过使用 Windows 10 或安装适用于低版本 Windows OS(例如 Windows 8.1 等)的 Windows Management Framework 5.0 RTM,可在 Windows 上结合使用 Visual Studio Code 和 PowerShell 版本 5.

开始前,请确保系统上安装有 PowerShell。有关 Windows、macOS 和 Linux 上的新式工作负荷,请参阅:

使用 Visual Studio Code 进行编辑Editing with Visual Studio Code

1.安装 Visual Studio Code1. Installing Visual Studio Code

重要

在 macOS 上,必须安装 OpenSSL 后 PowerShell 扩展方可正常运行。实现此要求的最简单方法是安装 Homebrew,然后运行 brew install openssl。VS Code 现可成功加载 PowerShell 扩展。

2.安装 PowerShell 扩展2. Installing PowerShell Extension

  • 按照如下方式启动 Visual Studio Code 应用:

    • Windows:在 PowerShell 会话中键入 code
    • Linux:在终端中键入 code
    • macOS:在终端中键入 code
  • 通过按 Ctrl+P(Mac 上为 Cmd+P)启动“Quick Open”。

  • 在“Quick Open”中,键入 ext install powershell 并按 Enter。

  • “扩展”视图随即在侧边栏上打开。从 Microsoft 中选择 PowerShell 扩展。应看到如下内容:

VSCode

  • 在 Microsoft 下单击 PowerShell 扩展上的“安装”按钮。

  • 安装后,“安装”按钮将变为“重载”。单击“重载”。

  • 重载 Visual Studio Code 后即可开始编辑。

例如,若要创建新文件,请单击“文件”->“新建”。若要保存,请单击“文件”->“保存”,然后提供一个文件名,例如 HelloWorld.ps1若要关闭文件,则单击文件名旁的“x”。若要退出 Visual Studio Code,请单击“文件”->“退出”。

受限制的系统上安装 PowerShell 扩展Installing the PowerShell Extension on Restricted Systems

某些系统设置要求要检查的所有代码签名并都需要手动批准在系统上运行的 PowerShell 编辑器服务的方式。如果你已安装 PowerShell 扩展但到达之类的错误,更改执行策略的组策略更新为可能的原因:

  1. Language server startup failed.

若要手动批准 PowerShell 编辑器服务,因此适用于 VSCode 的 PowerShell 扩展,请打开 PowerShell 提示符并运行:

  1. Import-Module $HOME\.vscode\extensions\ms-vscode.powershell*\modules\PowerShellEditorServices\PowerShellEditorServices.psd1

系统会提示使用"执行操作要运行此不受信任的发布服务器上的软件?"类型R运行该文件。然后,打开 Visual Studio Code,并检查 PowerShell 扩展工作正常。如果仍有问题入门,让我们知道上GitHub

使用 PowerShell 特定安装版Using a specific installed version of PowerShell

如果要通过 Visual Studio Code 使用 PowerShell 的特定安装版,则需要将新的变量添加到用户设置文件。

  • 单击“文件”->“首选项”->“设置”

  • 此时会出现两个编辑器窗格。在最右侧窗格 (settings.json) 中,在两个花括号({})之间的某处插入下面的 OS 对应设置,并将 <版本> 替换为已安装的 PowerShell 版本:

  1. // On Windows:
  2. "powershell.powerShellExePath": "c:/Program Files/PowerShell/<version>/pwsh.exe"
  3. // On Linux:
  4. "powershell.powerShellExePath": "/opt/microsoft/powershell/<version>/pwsh"
  5. // On macOS:
  6. "powershell.powerShellExePath": "/usr/local/microsoft/powershell/<version>/pwsh"
  • 将设置替换为所需 PowerShell 可执行文件的路径

  • 保存设置文件并重启 Visual Studio Code

Visual Studio Code 的配置设置Configuration settings for Visual Studio Code

按照上一段落中的步骤可在 settings.json 中添加配置设置。

我们建议对 Visual Studio Code 添加以下配置设置:

  1. {
  2. "csharp.suppressDotnetRestoreNotification": true,
  3. "editor.renderWhitespace": "all",
  4. "editor.renderControlCharacters": true,
  5. "omnisharp.projectLoadTimeout": 120,
  6. "files.trimTrailingWhitespace": true,
  7. "files.encoding": "utf8bom",
  8. "files.autoGuessEncoding": true
  9. }

如果不希望这些设置会影响所有文件类型,VSCode 还允许每种语言的配置。创建语言特定的设置将设置放在[<language-name>]字段。例如:

  1. "[powershell]": {
  2. "files.encoding": "utf8bom",
  3. "files.autoGuessEncoding": true
  4. }

详细了解文件编码在 VS Code 中,请参阅了解文件编码

使用 Visual Studio Code 进行调试Debugging with Visual Studio Code

无工作区调试No-workspace debugging

从 Visual Studio Code 版本 1.9 开始,无需打开包含 PowerShell 脚本的文件夹即可调试 PowerShell 脚本。打开 PowerShell 脚本文件与文件-> 打开文件…,行 (按 F9) 上设置断点,然后按 F5 启动调试。此时应出现“调试”操作窗格,通过该窗格可以中断调试器、执行、继续和停止调试。

工作区调试Workspace debugging

工作区调试是指文件夹上下文中的调试,该文件夹是使用“文件”菜单的“打开文件夹…”在 Visual Studio Code 中打开的。打开的文件夹通常是 PowerShell 项目文件夹和/或 Git 存储库的根文件夹。

即使在此模式下,按 F5 也可开始调试当前所选的 PowerShell 脚本。但是,通过工作区调试可以定义多个调试配置,而不是只调试当前打开的文件。例如,可通过添加配置执行以下操作:

  • 在调试器中启动 Pester 测试
  • 使用调试器中的参数启动特定文件
  • 在调试器中启动交互会话
  • 将调试器附加到 PowerShell 主机进程
    按照以下步骤创建调试配置文件:

  • 按 Ctrl+Shift+D(Mac 上为 Cmd+Shift+D)打开“调试”视图。

  • 按工具栏中的“配置”齿轮图标。
  • Visual Studio Code 将提示“选择环境”。选择“PowerShell”。
    执行此操作时,Visual Studio Code 会在工作区文件夹的根中创建一个目录和一个“.vscode\launch.json”文件。这是调试配置的存储位置。如果文件位于 Git 存储库中,则通常需要提交 launch.json 文件。launch.json 文件的内容为:
  1. {
  2. "version": "0.2.0",
  3. "configurations": [
  4. {
  5. "type": "PowerShell",
  6. "request": "launch",
  7. "name": "PowerShell Launch (current file)",
  8. "script": "${file}",
  9. "args": [],
  10. "cwd": "${file}"
  11. },
  12. {
  13. "type": "PowerShell",
  14. "request": "attach",
  15. "name": "PowerShell Attach to Host Process",
  16. "processId": "${command.PickPSHostProcess}",
  17. "runspaceId": 1
  18. },
  19. {
  20. "type": "PowerShell",
  21. "request": "launch",
  22. "name": "PowerShell Interactive Session",
  23. "cwd": "${workspaceRoot}"
  24. }
  25. ]
  26. }

这表示常见调试方案。但是,在编辑器中打开此文件时,会显示“添加配置…”按钮。按此按钮可添加更多 PowerShell 调试配置。其中可添加的一个便捷配置是“PowerShell: Launch Script”。通过此配置,可以使用可选参数指定特定文件,无论编辑器中哪个文件处于活动状态,无论何时按 F5 时,此文件都会启动。

调试配置建立后,可以在“调试”视图工具栏中的调试配置下拉列表中选择要在调试会话中使用的配置。

以下博客提供有关将 PowerShell 扩展用于 Visual Studio Code 的有用入门帮助:

适用于 Visual Studio Code 的 PowerShell 扩展PowerShell Extension for Visual Studio Code

可以在 GitHub 上找到 PowerShell 扩展的源代码。