使用 Visual Studio Code 進行 PowerShell 開發

Visual Studio Code (VS Code ) 是 Microsoft 的跨平臺腳本編輯器。 它與 PowerShell 延伸模組一起提供豐富的互動式腳本編輯體驗,讓您更輕鬆地撰寫可靠的 PowerShell 腳本。 使用 PowerShell 延伸模組的 Visual Studio Code 是撰寫 PowerShell 腳本的建議編輯器。

它支援下列 PowerShell 版本:

  • PowerShell 7.2 和更新版本 (Windows、macOS 和 Linux)
  • Windows PowerShell 5.1 (僅限 Windows 版)搭配 .NET Framework 4.8

注意

Visual Studio Code 與 Visual Studio 不同

開始使用

開始之前,請確定您的系統上有PowerShell。 如需 Windows、macOS 和 Linux 上的新式工作負載,請參閱下列連結:

如需傳統的 Windows PowerShell 工作負載,請參閱 安裝 Windows PowerShell

重要

Windows PowerShell ISE 仍可供 Windows 使用。 不過,它不再處於作用中的功能開發中。 ISE 僅適用於PowerShell 5.1和更舊版本。 作為 Windows 的元件,它仍會繼續受到安全性與高優先順序維護修正的正式支援。 我們沒有計劃從 Windows 移除 ISE。

安裝 VS Code 和 PowerShell 擴充功能

  1. 安裝 Visual Studio Code。 如需詳細資訊,請參閱設定Visual StudioCode概觀

    每個平臺都有安裝指示:

  2. 安裝 PowerShell 擴充功能。

    1. 在控制台中輸入 code ,或 code-insiders 如果您已安裝 Visual Studio Code 測試人員,請啟動 VS Code 應用程式。
    2. Ctrl+P 在 Windows 或 Linux 上啟動快速開啟。 在macOS上,按 Cmd+P。
    3. 在 [快速開啟] 中,輸入 ext install powershell 並按 Enter
    4. [ 延伸模組 ] 檢視會在提要列上開啟。 從 Microsoft 選取 PowerShell 擴充功能。
    5. 按兩下 Microsoft PowerShell 延伸模組上的 [ 安裝 ] 按鈕。
    6. 安裝之後,如果您看到 [ 安裝] 按鈕變成 [重載],請按兩下 [重 ]。
    7. VS Code 重載之後,您就可以開始編輯。

例如,若要建立新的檔案,請按兩下 [ 檔案 > 新增]。 若要儲存它,請按兩下 [ 檔案 > 儲存 ],然後提供檔案名,例如 HelloWorld.ps1。 若要關閉檔案,請按下 X 檔案名旁的 。 若要結束 VS Code,請結束檔案>。

在受限制的系統上安裝PowerShell擴充功能

有些系統已設定為需要驗證所有程式代碼簽章。 您可能會收到下列錯誤:

Language server startup failed.

當 Windows 組策略設定 PowerShell 的執行原則時,可能會發生此問題。 若要手動核准適用於 VS Code 的 PowerShell 編輯器服務和 PowerShell 擴充功能,請開啟 PowerShell 提示字元並執行下列命令:

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

系統提示您 是否要從這個不受信任的發行者執行軟體? 輸入 A 以執行檔案。 然後,開啟 VS Code 並確認 PowerShell 擴充功能正常運作。 如果您仍然有開始使用問題,請在 GitHub 問題讓我們知道。

選擇要搭配擴充功能使用的PowerShell版本

使用 PowerShell 與 Windows PowerShell 並存安裝時,現在可以使用特定版本的 PowerShell 搭配 PowerShell 擴充功能。 此功能會查看不同作業系統上的一些已知路徑,以探索PowerShell的安裝。

使用下列步驟來選擇版本:

  1. 使用 Ctrl+Shift+P 在 Windows 或 Linux 上開啟命令選擇區。 在macOS上,使用 Cmd+Shift+P。
  2. 搜尋 工作階段
  3. 按兩下 [PowerShell:顯示工作階段] 選單
  4. 從清單中選擇您想要使用的PowerShell版本。

如果您將PowerShell安裝到非一般位置,它可能不會一開始顯示在 [工作階段] 選單中。 您可以新增 自己的自定義路徑 來擴充會話功能表,如下所示。

您也可以從 {} 狀態列右下角的圖示存取 PowerShell 工作階段選單。 暫留或選取此圖示會顯示會話功能表和小型釘選圖示的快捷方式。 如果您選取釘選圖示,版本號碼會新增至狀態列。 版本號碼是會話功能表的快捷方式,需要較少的點選。

注意

釘選版本號碼會在 1.65 之前複寫 VS Code 版本中擴充功能的行為。 1.65 版的 VS Code 已變更 PowerShell 擴充功能所使用的 API,並將語言延伸模組的狀態列標準化。

Visual Studio Code 的組態設定

首先,如果您不熟悉如何在 VS Code 中變更設定,建議您閱讀 Visual Studio Code 的設定 檔。

閱讀文件之後,您可以在 中 settings.json新增組態設定。

{
    "editor.renderWhitespace": "all",
    "editor.renderControlCharacters": true,
    "files.trimTrailingWhitespace": true,
    "files.encoding": "utf8bom",
    "files.autoGuessEncoding": true
}

如果您不想要這些設定會影響所有文件類型,VS Code 也允許個別語言的組態。 將設定 [<language-name>] 放在欄位中,以建立特定語言設定。 例如:

{
    "[powershell]": {
        "files.encoding": "utf8bom",
        "files.autoGuessEncoding": true
    }
}

提示

如需 VS Code 中檔案編碼的詳細資訊,請參閱 瞭解檔案編碼。 此外,請參閱 如何復寫 VS Code 中的 ISE 體驗,以取得如何設定 POWERShell 編輯 VS Code 的其他秘訣。

將您自己的PowerShell路徑新增至工作階段選單

您可以透過 Visual Studio Code 設定,將其他 PowerShell 可執行文件路徑新增至會話功能表: powershell.powerShellAdditionalExePaths

您可以使用 GUI 來執行這項操作:

  1. 從 [命令選擇區] 搜尋並選取 [開啟使用者 設定]。 或使用 Windows 或 Linux Ctrl+ 上的鍵盤快捷方式。 在macOS上,使用 Cmd+,。
  2. 設定 編輯器中,搜尋 PowerShell 其他 Exe 路徑
  3. 按兩下 [ 新增專案]。
  4. 針對 [金鑰] (在 [專案] 底下,提供您為此額外 PowerShell 安裝選擇的名稱。
  5. 針對 [值] (在 [值] 底下,提供可執行檔本身的絕對路徑。

您可以視需要新增更多其他路徑。 新增的項目會顯示在會話功能表中,並指定索引鍵做為名稱。

或者,您可以將索引鍵/值組新增至 中的settings.json物件powershell.powerShellAdditionalExePaths

{
    "powershell.powerShellAdditionalExePaths": {
        "Downloaded PowerShell": "C:/Users/username/Downloads/PowerShell/pwsh.exe",
        "Built PowerShell": "C:/Users/username/src/PowerShell/src/powershell-win-core/bin/Debug/net6.0/win7-x64/publish/pwsh.exe"
    },
}

注意

在延伸模組 2022.5.0 版之前,此設定是具有必要索引鍵 exePathversionName的物件清單。 引進重大變更,可透過 GUI 支援設定。 如果您先前已設定此設定,請將其轉換為新的格式。 提供給 versionName 的值現在是 Key,而提供給 exePath 的值現在是 Value。 您可以藉由重設值並使用 設定 介面,更輕鬆地執行這項操作。

若要設定預設的 PowerShell 版本,請將值 powershell.powerShellDefaultVersion 設定為工作階段選單中顯示的文字(用於機碼的文字):

{
    "powershell.powerShellAdditionalExePaths": {
        "Downloaded PowerShell": "C:/Users/username/Downloads/PowerShell/pwsh.exe",
    },
    "powershell.powerShellDefaultVersion": "Downloaded PowerShell",
}

設定此設定之後,請重新啟動 VS Code,或從 [命令選擇區] 重載目前的 VS Code 視窗,輸入 Developer: Reload Window

如果您開啟會話功能表,現在會看到其他 PowerShell 安裝。

提示

如果您從來源建置 PowerShell,這是測試 PowerShell 本機組建的絕佳方式。

使用 Visual Studio Code 進行偵錯 \(英文\)

無工作區偵錯

在 VS Code 1.9 版(或更新版本)中,您可以偵錯 PowerShell 腳本,而不需開啟包含 PowerShell 腳本的資料夾。

  1. 使用>檔案開啟檔案開啟 PowerShell 腳本檔案...
  2. 設定斷點 - 選取一行,然後按 F9
  3. F5 開始偵錯

您應該會看到 [偵錯動作] 窗格出現,可讓您中斷調試程式、步驟、繼續和停止偵錯。

工作區偵錯

工作區偵錯是指使用 [開啟資料夾...] 從 [檔案] 功能表開啟的資料夾內容中進行偵錯。您開啟的資料夾通常是 PowerShell 專案資料夾或 Git 存放庫的根目錄。 工作區偵錯可讓您定義多個偵錯組態,而不只是偵錯目前開啟的檔案。

請遵循下列步驟來建立偵錯組態檔:

  1. Ctrl+Shift+D 開啟 Windows 或 Linux 上的 [偵錯] 檢視。 在macOS上,按 Cmd+Shift+D。

  2. 按兩下建立 launch.json檔案 連結。

  3. 從 [ 選取環境 ] 提示字元中,選擇 [PowerShell]。

  4. 選擇您想要使用的偵錯類型:

    • 啟動目前檔案 - 啟動並偵錯目前使用中編輯器視窗中的檔案
    • 啟動文稿 - 啟動並偵錯指定的檔案或命令
    • 互動式會話 - 從整合式主控台執行的偵錯命令
    • 附加 - 將調試程式附加至執行中的 PowerShell 主機進程

VS Code 會在工作區資料夾的根目錄中建立目錄和檔案 .vscode\launch.json ,以儲存偵錯組態。 如果您的檔案位於 Git 存放庫中,您通常會想要認可檔案 launch.json 。 檔案的內容 launch.json 如下:

{
  "version": "0.2.0",
  "configurations": [
      {
          "type": "PowerShell",
          "request": "launch",
          "name": "PowerShell Launch (current file)",
          "script": "${file}",
          "args": [],
          "cwd": "${file}"
      },
      {
          "type": "PowerShell",
          "request": "attach",
          "name": "PowerShell Attach to Host Process",
          "processId": "${command.PickPSHostProcess}",
          "runspaceId": 1
      },
      {
          "type": "PowerShell",
          "request": "launch",
          "name": "PowerShell Interactive Session",
          "cwd": "${workspaceRoot}"
      }
  ]
}

此檔案代表常見的偵錯案例。 當您在編輯器中開啟此檔案時,您會看到 [ 新增設定... ] 按鈕。 您可以按下此按鈕以新增更多 PowerShell 偵錯組態。 要新增的其中一個實用組態是 PowerShell:啟動腳本。 透過此組態,您可以指定檔案,其中包含選擇性自變數,每當按下 F5 時,不論編輯器中的檔案為使用中。

建立偵錯組態之後,您可以選取要在偵錯會話期間使用的組態。 從 [偵錯] 檢視工具列中的 [偵錯組態] 下拉式清單中選取組態。

針對 PowerShell 擴充功能進行疑難解答

如果您在使用 VS Code 進行 PowerShell 腳本開發時遇到任何問題,請參閱 GitHub 上的疑難解答指南

實用資源

有一些影片和部落格文章可能有助於開始使用適用於 VS Code 的 PowerShell 擴充功能:

影片

部落格文章

PowerShell 延伸模組專案原始程式碼

您可以在 GitHub找到 PowerShell 延伸模組的原始程式碼。

如果您有興趣參與,則非常讚賞提取要求。 請遵循 GitHub 上的開發人員檔 以開始使用。