Uso de Visual Studio Code para el desarrollo de PowerShell

Visual Studio Code (VS Code) es un editor de scripts multiplataforma de Microsoft. Junto con la extensión de PowerShell, proporciona una experiencia de edición de scripts enriquecida e interactiva que facilita la escritura de scripts confiables de PowerShell. Visual Studio Code con la extensión de PowerShell es el editor recomendado para escribir scripts de PowerShell.

Admite las siguientes versiones de PowerShell:

  • PowerShell 7.2 y versiones posteriores (Windows, macOS y Linux)
  • Windows PowerShell 5.1 (solo Windows) con .NET Framework 4.8

Nota

Visual Studio Code no es lo mismo que Visual Studio.

Introducción

Antes de empezar, asegúrese de que PowerShell existe en el sistema. Para cargas de trabajo modernas de Windows, macOS y Linux, consulte los siguientes vínculos:

Para las cargas de trabajo de Windows PowerShell tradicionales, vea Instalación de Windows PowerShell.

Importante

Windows PowerShell ISE sigue estando disponible para Windows. Sin embargo, ya no se incluye en el desarrollo activo de características. El ISE solo funciona con PowerShell 5.1 y versiones anteriores. Como un componente de Windows, sigue siendo compatible oficialmente con las correcciones de servicios de seguridad y alta prioridad. No está previsto quitar el ISE de Windows.

Instalación de VS Code y la extensión de PowerShell

  1. Instale Visual Studio Code. Para más información, consulte la información general que se describe en Configuración de Visual Studio Code.

    Hay instrucciones de instalación para cada plataforma:

  2. Instale la extensión de PowerShell.

    1. Inicie la aplicación VS Code; para ello, escriba code en una consola, o code-insiders si ha instalado Visual Studio Code Insiders.
    2. Inicie Quick Open en Windows o Linux; para ello, presione Ctrl+P. En macOS, presione Cmd+P.
    3. En Quick Open, escriba ext install powershell y presione Entrar.
    4. Se abre la vista Extensiones en la barra lateral. Seleccione la extensión de PowerShell de Microsoft.
    5. Haga clic en el botón Instalar en la extensión de PowerShell de Microsoft.
    6. Después de la instalación, si ve que el botón Instalar cambia a Recargar, haga clic en Recargar.
    7. Una vez que VS Code se haya vuelto a cargar, estará listo para editar.

Por ejemplo, para crear un archivo, haga clic en Archivo > Nuevo. Para guardarlo, haga clic en Archivo > Guardar y proporcione un nombre de archivo, por ejemplo, HelloWorld.ps1. Para cerrar el archivo, haga clic en la X junto al nombre de archivo. Para salir de VS Code, haga clic en Archivo > Salir.

Instalación de la extensión de PowerShell en sistemas restringidos

Algunos sistemas están configurados para requerir la validación de todas las firmas de código. Puede que aparezca el siguiente mensaje de error:

Language server startup failed.

Este problema puede producirse cuando la directiva de ejecución de PowerShell está establecida en la directiva de grupo de Windows. Para aprobar manualmente los servicios del editor de PowerShell y la extensión de PowerShell para VS Code, abra un símbolo del sistema de PowerShell y ejecute el siguiente comando:

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

Se le preguntará si desea ejecutar software de este editor que no es de confianza. Escriba A para ejecutar el archivo. Luego abra VS Code y verifique que la extensión de PowerShell funciona correctamente. Si sigue teniendo problemas para empezar, háznoslo saber en un problema de GitHub.

Elección de una versión de PowerShell para usarla con la extensión

Con la instalación de PowerShell en paralelo con Windows PowerShell, ahora es posible usar una versión específica de PowerShell con la extensión de PowerShell. Esta característica examina algunas rutas de acceso conocidas en distintos sistemas operativos para detectar las instalaciones de PowerShell.

Use estos pasos para elegir la versión:

  1. Abra la paleta de comandos en Windows o Linux con Ctrl+Mayús+P. En macOS, use Cmd+Mayús+P.
  2. Busque Sesión.
  3. Haga clic en PowerShell: Show Session Menu (PowerShell: Mostrar menú de sesión).
  4. En la lista, elija la versión de PowerShell que quiere usar.

O PowerShell pode não ser inicialmente mostrado no menu de sessão caso você o tenha instalado em um local atípico. Para extender el menú de la sesión, agregue sus propias rutas de acceso personalizadas tal como se describe a continuación.

También puede acceder al menú de la sesión de PowerShell desde el icono de {} de la esquina inferior derecha de la barra de estado. Al pasar el cursor sobre este icono o seleccionarlo, se muestra un acceso directo al menú de la sesión y un pequeño icono de anclaje. Si selecciona el icono de anclaje, el número de versión se agrega a la barra de estado. El número de versión es un acceso directo al menú de sesión que requiere menos clics.

Nota

Anclar el número de versión replica el comportamiento de la extensión en versiones de VS Code anteriores a la 1.65. La versión 1.65 de VS Code cambió las API que usa la extensión de PowerShell y normalizó la barra de estado para las extensiones de lenguaje.

Valores de configuración para Visual Studio Code

En primer lugar, si no se está familiarizado con la forma de cambiar la configuración en VS Code, se recomienda leer la documentación sobre la configuración de Visual Studio Code.

Después de leer la documentación, puede agregar opciones de configuración en settings.json.

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

Si no desea que esta configuración afecte a todos los tipos de archivos, VS Code también permite configuraciones por lenguaje. Cree un ajuste específico del lenguaje colocando los ajustes en un campo [<language-name>]. Por ejemplo:

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

Sugerencia

Para obtener más información sobre la codificación de archivo en VS Code, consulte Descripción de la codificación de archivo. Vea también Cómo replicar la experiencia de ISE en Visual Studio Code para obtener otras sugerencias sobre cómo configurar VS Code para la edición de PowerShell.

Adición de rutas de acceso propias de PowerShell al menú de sesión

Puede agregar otras rutas de acceso ejecutables de PowerShell al menú de sesión mediante la configuración de Visual Studio Code: powershell.powerShellAdditionalExePaths.

Puede hacerlo mediante la GUI:

  1. En la paleta de comandos, busque y seleccione Abrir configuración de usuario. O bien, use el método abreviado de teclado en Windows o Linux Ctrl+,. En macOS, use Cmd+,.
  2. En el editor de configuración, busque Rutas de acceso adicionales de Exe de PowerShell.
  3. Haga clic en Add Item (Agregar elemento).
  4. Para la clave (en Elemento), proporcione su nombre para esta instalación adicional de PowerShell.
  5. Para el valor (en Valor), proporcione la ruta de acceso absoluta al propio ejecutable.

Puede añadir tantas rutas adicionales como quiera. Los elementos agregados aparecen en el menú de sesión con la clave especificada como nombre.

Como alternativa, puede agregar pares clave-valor al objeto powershell.powerShellAdditionalExePaths en 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

Antes de la versión 2022.5.0 de la extensión, esta configuración era una lista de objetos con las claves exePath necesarias y versionName. Se introdujo un cambio importante para admitir la configuración a través de la GUI. Si ha configurado previamente esta configuración, conviértela en el nuevo formato. El valor especificado para versionName ahora es la clave y el valor especificado para exePath ahora es el valor. Para ello, puede restablecer el valor y usar la interfaz Configuración.

Para configurar la versión predeterminada de PowerShell, establezca el valor powershell.powerShellDefaultVersion en el texto que se muestra en el menú de la sesión (el texto utilizado para la clave):

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

Después de configurar este valor, reinicie VS Code, o para volver a cargar la ventana actual de VS Code desde la paleta de comandos, escriba Developer: Reload Window.

Si abre el menú de la sesión, ahora verá sus instalaciones adicionales de PowerShell.

Sugerencia

Si compila PowerShell a partir del código fuente, se trata de una excelente forma de probar la compilación local de PowerShell.

Depuración con Visual Studio Code

Depuración fuera del área de trabajo

En VS Code 1.9 (o versiones posteriores), puede depurar scripts de PowerShell sin tener que abrir la carpeta que los contiene.

  1. Abra el archivo de script de PowerShell con Archivo > Abrir archivo….
  2. Establezca un punto de interrupción: seleccione una línea y, a continuación, presione F9.
  3. Presione F5 para iniciar la depuración.

Verá que aparece el panel de acciones de depuración, que le permite iniciar el depurador, realizar la depuración paso a paso, reanudarla y detenerla.

Depuración del área de trabajo

La depuración del área de trabajo hace referencia a la depuración en el contexto de una carpeta que se ha abierto desde el menú Archivo mediante Abrir carpeta... Suele tratarse de la carpeta del proyecto de PowerShell o la raíz del repositorio de Git. La depuración del área de trabajo no se limita a depurar el archivo abierto actualmente, sino que permite definir diversas configuraciones de depuración.

Siga los pasos siguientes para crear un archivo de configuración de depuración:

  1. Abra la vista Depurar en Windows o Linux con Ctrl+Mayús+D. En macOS, presione Cmd+Mayús+D.

  2. Haga clic en el vínculo crear un archivo launch.json.

  3. En el mensaje Seleccionar entorno, seleccione PowerShell.

  4. Elija el tipo de depuración que desea usar:

    • Iniciar el archivo actual: iniciar y depurar el archivo en la ventana del editor actualmente activa
    • Iniciar script: iniciar y depurar el archivo o comando especificado
    • Sesión interactiva: depurar los comandos ejecutados desde la consola integrada
    • Adjuntar: adjuntar el depurador a un proceso de host de PowerShell en ejecución

VS Code crea un directorio y un archivo .vscode\launch.json en la raíz de la carpeta del área de trabajo para almacenar la configuración de depuración. Si los archivos están en un repositorio de Git, lo normal es que le interese confirmar el archivo launch.json. El contenido del archivo launch.json es el siguiente:

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

Este archivo representa los escenarios de depuración comunes. Cuando abra este archivo en el editor, verá un botón Agregar configuración… . Puede hacer clic en este botón para agregar más configuraciones de depuración de PowerShell. Una configuración muy útil que conviene agregar es PowerShell: Iniciar Script. Con esta configuración, puede especificar un archivo que contenga argumentos opcionales que se usarán cada vez que se presione F5, con independencia del archivo que esté activo en el editor.

Una vez establecida la configuración de depuración, puede seleccionar qué configuración quiere usar durante una sesión de depuración. Seleccione una configuración de la lista desplegable de configuraciones de depuración en la barra de herramientas de la vista Depurar.

Solución de problemas de la extensión de PowerShell

Si experimenta algún problema al usar VS Code para el desarrollo de scripts de PowerShell, vea la guía de solución de problemas en GitHub.

Recursos útiles

Algunos vídeos y entradas de blog pueden servirle de ayuda para empezar a usar la extensión de PowerShell para VS Code:

Vídeos

Publicaciones de blog

Código fuente del proyecto de extensión de PowerShell

Encontrará en GitHub el código fuente de la extensión de PowerShell.

Si está interesado en contribuir, las solicitudes de incorporación de cambios resultan muy apreciadas. Siga los pasos de la documentación para desarrolladores en GitHub para comenzar.