Uso di Visual Studio Code per lo sviluppo di PowerShell

Visual Studio Code (VS Code) è un editor di script multipiattaforma di Microsoft. Insieme all'estensione PowerShell, offre un'esperienza di modifica degli script avanzata e interattiva, che semplifica la scrittura di script PowerShell affidabili. Visual Studio Code con l'estensione PowerShell è l'editor consigliato per la scrittura di script PowerShell.

Supporta le versioni di PowerShell seguenti:

  • PowerShell 7.2 e versioni successive (Windows, macOS e Linux)
  • Windows PowerShell 5.1 (solo Windows) con .NET Framework 4.8

Nota

Visual Studio Code non è uguale a Visual Studio.

Introduzione

Prima di iniziare, verificare che PowerShell sia presente nel sistema. Per carichi di lavoro moderni in Windows, macOS e Linux, vedere i collegamenti seguenti:

Per carichi di lavoro di Windows PowerShell tradizionali, vedere Installazione di Windows PowerShell.

Importante

Windows PowerShell ISE continua a essere disponibile per Windows. Tuttavia, non è più nello sviluppo di funzionalità attive. L edizione Standard funziona solo con PowerShell 5.1 e versioni precedenti. Poiché è un componente di Windows, continua a essere supportato per la sicurezza e per le correzioni a priorità elevata. non abbiamo intenzione di rimuovere l'I edizione Standard da Windows.

Installare VS Code e l'estensione PowerShell

  1. Installare Visual Studio Code. Per altre informazioni, vedere la panoramica onfigurazione di Visual Studio Code.

    Sono disponibili istruzioni per l'installazione per ogni piattaforma:

  2. Installare l'estensione di PowerShell.

    1. Avviare l'app VS Code digitando code in una console o code-insiders se è stato installato Visual Studio Code Insiders.
    2. Avviare Quick Open in Windows o Linux premendo CTRL+P. In macOS premere Cmd+P.
    3. Aprire Quick Open, digitare ext install powershell, quindi premere INVIO.
    4. La vista Estensioni si aprirà nella barra laterale. Selezionare l'estensione di PowerShell da Microsoft.
    5. Da Microsoft, fare clic sul pulsante Installa sull'estensione di PowerShell.
    6. Dopo l'installazione, il pulsante Ricarica verrà visualizzato al posto del pulsante Installa. Fare clic su Ricarica.
    7. Dopo aver ricaricato VS Code, si è pronti per la modifica.

Ad esempio, per creare un nuovo file, fare clic su File > Nuovo. Per salvarlo, fare clic su Salva file > e quindi specificare un nome file, ad esempio HelloWorld.ps1. Per chiudere il file, fare clic sull'elemento X accanto al nome file. Per uscire da VS Code, Uscire dal file>.

Installare l'estensione di PowerShell in sistemi con restrizioni

Alcuni sistemi sono configurati in modo da richiedere la convalida di tutte le firme del codice. È possibile che venga visualizzato l'errore seguente:

Language server startup failed.

Questo problema può verificarsi quando i criteri di esecuzione di PowerShell vengono impostati da Criteri di gruppo di Windows. Per approvare manualmente i servizi editor di PowerShell e l'estensione PowerShell per VS Code, aprire un prompt di PowerShell ed eseguire il comando seguente:

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

Viene richiesto di eseguire il software da questo editore non attendibile? Digitare A per eseguire il file. Aprire quindi VS Code e verificare che l'estensione powerShell funzioni correttamente. Se si verificano ancora problemi durante l'avvio, segnalarlo in un problema di GitHub.

Scelta di una versione di PowerShell da usare con l'estensione

Con l'installazione side-by-side di PowerShell con Windows PowerShell, è ora possibile usare una versione specifica di PowerShell con l'estensione PowerShell. Questa funzionalità esegue la ricerca in alcuni percorsi noti nei diversi sistemi operativi per individuare le installazioni di PowerShell.

Attenersi alla procedura per scegliere la versione:

  1. Aprire il riquadro comandi in Windows o Linux con CTRL+MAIUSC+P. In macOS usare Cmd+MAIUSC+P.
  2. Cercare Session (Sessione).
  3. Fare clic su PowerShell: Mostra menu sessione.
  4. Scegliere la versione di PowerShell che si vuole usare dall'elenco.

Se PowerShell è installato in un percorso non tipico, potrebbe non comparire inizialmente nel menu della sessione. È possibile estendere il menu della sessione aggiungendo percorsi personalizzati come descritto di seguito.

È anche possibile accedere al menu della sessione di PowerShell dall'icona {} nell'angolo inferiore destro della barra di stato. Passando il puntatore del mouse o selezionando questa icona, viene visualizzato un collegamento al menu di sessione e un'icona a forma di puntina piccola. Se si seleziona l'icona a forma di puntina, il numero di versione viene aggiunto alla barra di stato. Il numero di versione è un collegamento al menu di sessione che richiede meno clic.

Nota

L'aggiunta del numero di versione replica il comportamento dell'estensione nelle versioni di VS Code precedenti alla 1.65. La versione 1.65 di VS Code ha modificato le API usate dall'estensione di PowerShell e standardizzato la barra di stato per le estensioni del linguaggio.

Impostazioni di configurazione per Visual Studio Code

Prima di tutto, se non si ha familiarità con come modificare le impostazioni in VS Code, è consigliabile leggere la documentazione delle impostazioni di Visual Studio Code.

Dopo aver letto la documentazione, è possibile aggiungere le impostazioni di configurazione in settings.json.

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

Se si vuole evitare che queste impostazioni influiscano su tutti i tipi di file, VS Code consente anche di definire configurazioni diverse in base al linguaggio. Per creare un'impostazione specifica del linguaggio, inserire le impostazioni in un campo [<language-name>]. Ad esempio:

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

Suggerimento

Per altre informazioni sulla codifica dei file in Visual Studio Code, vedere Informazioni sulla codifica di file. Vedere anche Come replicare l'esperienza I edizione Standard in VS Code per altri suggerimenti su come configurare VS Code per la modifica di PowerShell.

Aggiunta di percorsi di PowerShell personalizzati al menu della sessione

È possibile aggiungere altri percorsi dell'eseguibile PowerShell al menu della sessione tramite l'impostazione di Visual Studio Code: powershell.powerShellAdditionalExePaths.

A tale scopo, usare l'interfaccia utente grafica:

  1. Nel riquadro comandi cercare e selezionare Apri Impostazioni utente. In alternativa, usare i tasti di scelta rapida in Windows o Linux CTRL+,. In macOS usare Cmd.On macOS, use Cmd+,.
  2. Nell'editor di Impostazioni cercare Percorsi exe aggiuntivi di PowerShell.
  3. Fare clic su Add Item (Aggiungi elemento).
  4. Per chiave (in Elemento) specificare il nome desiderato per questa installazione aggiuntiva di PowerShell.
  5. Per Value (in Value) specificare il percorso assoluto dell'eseguibile stesso.

È possibile aggiungere tutti i percorsi aggiuntivi desiderati. Gli elementi aggiunti vengono visualizzati nel menu della sessione con la chiave specificata come nome.

In alternativa, è possibile aggiungere coppie chiave-valore all'oggetto powershell.powerShellAdditionalExePaths in settings.json:

{
    "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"
    },
}

Nota

Prima della versione 2022.5.0 dell'estensione, questa impostazione era un elenco di oggetti con le chiavi exePath necessarie e versionName. È stata introdotta una modifica che causa un'interruzione per supportare la configurazione tramite GUI. Se questa impostazione è stata configurata in precedenza, convertirla nel nuovo formato. Il valore specificato per versionName è ora Key e il valore specificato per exePath è ora Value. È possibile eseguire questa operazione più facilmente reimpostando il valore e usando l'interfaccia Impostazioni.

Per impostare la versione predefinita di PowerShell, impostare il valore powershell.powerShellDefaultVersion sul testo visualizzato nel menu della sessione (il testo usato per la chiave):

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

Dopo aver configurato questa impostazione, riavviare VS Code o ricaricare la finestra corrente di VS Code dal riquadro comandi, digitare Developer: Reload Window.

Se si apre il menu di sessione, vengono visualizzate le installazioni aggiuntive di PowerShell.

Suggerimento

Se si compila PowerShell dall'origine, questo è un ottimo modo per testare la compilazione locale di PowerShell.

Debug con Visual Studio Code

Debug senza area di lavoro

In VS Code versione 1.9 (o successiva) è possibile eseguire il debug degli script di PowerShell senza aprire la cartella contenente lo script di PowerShell.

  1. Aprire il file di script di PowerShell con File Open File > ...
  2. Impostare un punto di interruzione, selezionare una riga, quindi premere F9
  3. Premere F5 per avviare il debug

Verrà visualizzato il riquadro Azioni di debug che consente di eseguire l'interruzione del debugger, del passaggio, della ripresa e dell'arresto del debug.

Debug dell'area di lavoro

Il debug dell'area di lavoro si riferisce al debug nel contesto di una cartella aperta dal menu File usando Apri cartella. La cartella aperta è in genere la cartella del progetto PowerShell o la radice del repository Git. Il debug dell'area di lavoro consente di definire più configurazioni di debug diverse dal semplice debug del file attualmente aperto.

Seguire questi passaggi per creare un file di configurazione di debug:

  1. Aprire la visualizzazione Debug in Windows o Linux premendo CTRL+MAIUSC+D. In macOS premere Cmd+MAIUSC+D.

  2. Fare clic sul collegamento per creare un file launch.json.

  3. In Seleziona ambiente scegliere PowerShell.

  4. Scegliere il tipo di debug che si vuole usare:

    • Avviare il file corrente: avviare ed eseguire il debug del file nella finestra dell'editor attualmente attiva
    • Avviare lo script: avviare ed eseguire il debug del file o del comando specificato
    • Sessione interattiva: eseguire il debug dei comandi eseguiti dalla console integrata
    • Attach (Associa): collegare il debugger a un processo host di PowerShell in esecuzione

VS Code crea una directory e un file .vscode\launch.json nella radice della cartella dell'area di lavoro per archiviare la configurazione di debug. Se i file si trovano in un repository Git, in genere si vuole eseguire il commit del file launch.json. Il contenuto del file launch.json è il seguente:

{
  "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}"
      }
  ]
}

Il file rappresenta gli scenari di debug comuni. Quando si apre il file nell'editor, viene visualizzato il pulsante Aggiungi configurazione.... È possibile fare clic su questo pulsante per aggiungere altre configurazioni di debug per PowerShell. Una configurazione utile da aggiungere è PowerShell: Avvia script. Con questa configurazione, è possibile specificare un file contenente gli argomenti facoltativi che vengono usati ogni volta che si preme F5, a prescindere dal file attivo nell'editor.

Dopo aver stabilito la configurazione di debug, è possibile selezionare la configurazione da usare durante una sessione di debug. Selezionare una configurazione dall'elenco a discesa delle configurazioni di debug nella barra degli strumenti della visualizzazione Debug.

Risoluzione dei problemi relativi all'estensione PowerShell

Se si verificano problemi con VS Code per lo sviluppo di script di PowerShell, vedere la guida alla risoluzione dei problemi in GitHub.

Risorse utili

Esistono alcuni video e post di blog che possono essere utili per iniziare a usare l'estensione PowerShell per VS Code:

Video

Post di blog

Codice sorgente del progetto di estensione di PowerShell

I codici sorgente dell'estensione di PowerShell sono disponibili in GitHub.

Per contribuire, è necessario usare le richieste pull. Per iniziare, seguire la documentazione per gli sviluppatori su GitHub.