Поделиться через


Использование Visual Studio Code для разработки в PowerShell

Visual Studio Code (VS Code) — это кросс-платформенный редактор скриптов, созданный корпорацией Майкрософт. Наряду с расширением PowerShell он предоставляет широкие интерактивные возможности редактирования скриптов, упрощая написание надежных скриптов PowerShell. Редактор Visual Studio Code с расширением PowerShell рекомендуется использовать для написания сценариев 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 по-прежнему доступна для Windows, но функции для нее больше не разрабатываются. Интегрированная среда сценариев (ISE) работает только с PowerShell 5.1 и более ранних версий. Как компонент Windows эта среда по-прежнему официально поддерживается для внесения критически важных исправлений, связанных с безопасностью и обслуживанием. Пока что мы не планируем удалять ее из Windows.

Установка VS Code и расширения PowerShell

  1. Установка Visual Studio Code. Дополнительные сведения см. в статье Setting up Visual Studio Code (Настройка Visual Studio Code).

    Доступны инструкции по установке на каждой платформе:

  2. Установите расширение PowerShell.

    1. Запустите приложение Visual Studio Code, введя code в консоли или code-insiders, если установлен Visual Studio Code Insiders.
    2. Запустите Quick Open в Windows или Linux, нажав клавиши CTRL+P. В macOS нажмите клавиши CMD+P.
    3. В Quick Open введите ext install powershell и нажмите клавишу ВВОД.
    4. На боковой панели открывается представление Расширения. Выберите расширение PowerShell корпорации Майкрософт.
    5. Нажмите кнопку Установить для расширения PowerShell корпорации Майкрософт.
    6. После установки кнопка Установить изменяется на Reload (Перезагрузить). Нажмите кнопку Reload (Перезагрузить).
    7. После перезагрузки VS Code можно приступать к редактированию.

Например, чтобы создать файл, выберите Файл > Создать. Чтобы сохранить его, выберите Файл > Сохранить и укажите имя файла, например HelloWorld.ps1. Чтобы закрыть файл, щелкните X рядом с его именем. Чтобы выйти из VS Code, выберите Файл > Выход.

Установка расширения PowerShell в системах с ограниченным доступом

Некоторые системы настроены так, что требуют проверки всех подписей кода. Может появиться следующее сообщение об ошибке:

Language server startup failed.

Эта проблема может возникать, когда политика выполнения PowerShell задается групповой политикой Windows. Чтобы вручную утвердить службы редактора PowerShell и, следовательно, расширение PowerShell для VSCode, откройте командную строку 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. Откройте палитру команд в Windows и Linux (CTRL+SHIFT+P). В macOS нажмите клавиши CMD+SHIFT+P.
  2. Выполните поиск по слову Сеанс.
  3. Щелкните PowerShell: показать меню сеанса.
  4. Выберите нужную версию PowerShell в списке.

Если вы установили PowerShell в нетипичном расположении, оно может первоначально не отобразиться в меню сеансов. Вы можете расширить меню сеансов, добавив собственные пользовательские пути, как описано ниже.

Меню сеансов PowerShell также можно открыть, щелкнув значок {} в нижнем правом углу строки состояния. При наведении указателя мыши на этот значок (или его щелчке) отображается ярлык меню сеанса и небольшой значок булавки. При выборе значка булавки номер версии добавляется в строку состояния. Номер версии — это ярлык для меню сеанса, для вызова которого требуется меньшее количество щелчков.

Примечание.

При закреплении номера версии реплицируется поведение расширения в версиях VS Code, предшествующих версии 1.65. В выпуске 1.65 VS Code изменены API, которые использует расширение PowerShell, и стандартизована строка состояния для расширений языка.

Параметры конфигурации для 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, в которой даны рекомендации по настройке VS Code для редактирования в PowerShell.

Добавление собственных путей PowerShell в меню сеансов

В меню сеанса можно добавить другие пути к исполнимому файлу PowerShell с помощью параметра Visual Studio Code: powershell.powerShellAdditionalExePaths.

Это можно сделать с помощью графического пользовательского интерфейса:

  1. В палитре команд найдите и выберите пункт Открыть пользовательские параметры. Или воспользуйтесь клавишами CTRL+, на Windows или Linux. На macOS используйте клавиши CMD+,.
  2. В редакторе Параметры найдите Дополнительные пути к исполняемому файлу PowerShell.
  3. Нажмите кнопку Add Item (Добавить элемент).
  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 расширения этот параметр представлял собой список объектов с необходимыми ключами exePath и versionName. Для поддержки конфигурации с использованием графического пользовательского интерфейса было внесено критическое изменение. Если вы ранее настраивали этот параметр, преобразуйте его в новый формат. Значение versionName теперь используется в параметре Ключ, а значение exePath — в параметре Значение. Чтобы упростить переход на новый формат, сбросьте значения и воспользуйтесь интерфейсом "Параметры".

Чтобы задать версию PowerShell по умолчанию, укажите значение для параметра powershell.powerShellDefaultVersion в качестве текста, отображаемого в меню сеанса (который используется для ключа):

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

Задав этот параметр, перезапустите VSCode или перезагрузите текущее окно VSCode с помощью действия Developer: Reload Windowпалитры команд:

Открыв меню сеанса, вы увидите дополнительные установки PowerShell.

Совет

Если вы создаете PowerShell из исходного кода, это отличный способ протестировать локальную сборку PowerShell.

Отладка с помощью Visual Studio Code

Отладка без рабочей области

Начиная с версии VS Code 1.9, вы можете отлаживать скрипты PowerShell, не открывая папку со скриптом PowerShell.

  1. Откройте файл скрипта PowerShell с помощью команды Файл > Открыть файл….
  2. Установите точку останова на строке и нажмите клавишу F9.
  3. Нажмите клавишу F5, чтобы запустить отладку.

Откроется панель действий отладки, позволяющая прервать работу отладчика, возобновить отладку, выполнить ее пошагово или остановить.

Отладка с рабочей областью

Отладка рабочей области относится к отладке в контексте папки, которую вы открыли из меню "Файл " с помощью "Открыть папку...". Открытая папка обычно является папкой проекта PowerShell или корнем репозитория Git. Отладка с рабочей областью позволяет задать несколько конфигураций отладки, а не просто выполнить отладку открытого файла.

Выполните следующие действия, чтобы создать файл конфигурации отладки:

  1. Откройте представление Отладка в Windows или Linux (CTRL+SHIFT+D). В macOS нажмите клавиши CMD+SHIFT+D.

  2. Щелкните ссылку create a launch.json file (Создать файл launch.json).

  3. В окне запроса Select Environment (Выбор среды) выберите PowerShell.

  4. Выберите тип отладки, который хотите использовать:

    • Launch Current File (Запуск текущего файла) — запуск и отладка файла в текущем активном окне редактора.
    • Launch Script (Запуск скрипта) — запуск и отладка указанного файла или команды.
    • Interactive Session (Интерактивный сеанс) — команды отладки, выполняемые из интегрированной консоли.
    • Attach (Подключение) — подключение отладчика к выполняемому хост-процессу 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.

Полезные ресурсы

Существует несколько видео и записей блогов, которые могут оказаться полезными при начале работы с расширением PowerShell для VS Code:

Видео

Записи блогов

Исходный код проекта расширения PowerShell

Исходный код расширения PowerShell доступен на GitHub.

Если вы хотите принять участие в проекте в качестве разработчика, отправьте запрос на вытягивание. Чтобы приступить к работе, следуйте указаниям из документации для разработчиков на сайте GitHub.