Использование 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 ISE по-прежнему доступна для Windows. Тем не менее, новые функции больше не разрабатываются активно. IsE работает только с PowerShell 5.1 и более ранними версиями. Как компонент Windows, он продолжает официально поддерживаться для исправлений безопасности и высокоприоритетных исправлений обслуживания. Мы не планируем удалить isE из Windows.
Установка VS Code и расширение PowerShell
Установите Visual Studio Code. Дополнительные сведения см. в обзоре по настройке Visual Studio Code.
Существуют инструкции по установке для каждой платформы:
Установите расширение PowerShell.
- Запустите приложение VS Code, введя
code
в консоли илиcode-insiders
, если вы установили Visual Studio Code Insiders. - Запустите функцию быстрого открытия в Windows или Linux, нажав клавиши Ctrl+P. В macOS нажмите cmd+P.
- В области быстрого открытия введите
ext install powershell
и нажмите клавишу ВВОД. - Откроется представление расширения на боковой панели. Выберите расширение PowerShell от Корпорации Майкрософт.
- Нажмите кнопку Установить в расширении PowerShell от Майкрософт.
- Если после установки кнопка "Установить" превращается в "Перезагрузить", нажмите кнопку "Перезагрузить".
- После перезагрузки VS Code вы будете готовы к редактированию.
- Запустите приложение VS Code, введя
Например, чтобы создать новый файл, щелкните Файл > Создать. Чтобы сохранить его, щелкните Файл > сохранить и укажите имя файла, например HelloWorld.ps1
. Чтобы закрыть файл, щелкните X
рядом с именем файла.
Чтобы выйти из VS Code, файл > выйти.
Установка расширения PowerShell в ограниченных системах
Некоторые системы настроены для проверки всех подписей кода. Может появиться следующая ошибка:
Language server startup failed.
Эта проблема может возникать, когда политика выполнения PowerShell устанавливается групповой политикой Windows. Чтобы вручную утвердить службы редактора PowerShell и расширение PowerShell для VS Code, откройте строку 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.
Чтобы выбрать версию, выполните следующие действия.
- Откройте палитру команд в Windows или Linux с помощью клавишами Ctrl+Shift+P. В macOS используйте cmd+Shift+P.
- Выполните поиск сеанса .
- Щелкните PowerShell: Показать Меню Сеанса.
- Выберите версию 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 см. в разделе Основные сведения о кодировке файлов. Кроме того, ознакомьтесь с Как реплицировать интерфейс ISE в VS Code для других советов по настройке VS Code для редактирования PowerShell.
Добавление собственных путей PowerShell в меню сессии
Другие пути к исполняемому файлу PowerShell можно добавить в меню сеансов с помощью параметра Visual Studio Code: powershell.powerShellAdditionalExePaths
.
Это можно сделать с помощью графического интерфейса:
- В палитре команд найдите и выберите Открыть параметры пользователя. Или используйте сочетание клавиш в Windows или Linux CTRL+. В macOS используйте cmd+,.
- В редакторе параметров выполните поиск дополнительных путей выполнения PowerShell.
- Щелкните Добавить элемент.
- Для ключа (в разделе элемент ) укажите имя для этой дополнительной установки PowerShell.
- Для значения (под значением ) укажите абсолютный путь к исполняемому файлу самому.
Вы можете добавить столько дополнительных путей, сколько вам нравится. Добавленные элементы отображаются в меню сеанса с заданным ключом в качестве имени.
Кроме того, можно добавить пары "ключ-значение" в объект powershell.powerShellAdditionalExePaths
в 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"
},
}
Заметка
До версии 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",
}
После настройки этого параметра перезапустите VS Code или в палитре команд введите Developer: Reload Window
, чтобы перезагрузить текущее окно VS Code.
Если открыть меню сеанса, вы увидите дополнительные установки PowerShell.
Совет
Если вы создаете PowerShell из источника, это отличный способ проверить локальную сборку PowerShell.
Отладка с помощью Visual Studio Code
Отладка без рабочей области
В VS Code версии 1.9 (или более поздней) можно выполнять отладку сценариев PowerShell без открытия папки, содержащей скрипт PowerShell.
- Откройте файл скрипта PowerShell с помощью Файл > Открыть файл...
- Установка точки останова — выберите строку и нажмите F9 F9
- Нажмите клавишу F5, чтобы начать отладку
Появится панель действий отладки, которая позволяет войти в режим отладки, выполнить по шагам, возобновить и остановить отладку.
Отладка рабочей области
Отладка рабочей области относится к отладке в контексте папки, которую вы открыли из меню файл с помощью Открыть папку.... Открытая папка обычно является папкой проекта PowerShell или корнем репозитория Git. Отладка рабочей области позволяет определить несколько конфигураций отладки, отличных от отладки текущего открытого файла.
Выполните следующие действия, чтобы создать файл конфигурации отладки:
Откройте представление отладки в Windows или Linux, нажав клавиши Ctrl+Shift+D. В macOS нажмите клавиши cmd cmd+SHIFT+D.
Щелкните ссылку launch.json создать файл.
В командной строке Выбор среды выберите PowerShell.
Выберите тип отладки, который вы хотите использовать:
- запуск текущего файла — запуск и отладка файла в активном окне редактора
- запуск скрипта — запуск и отладка указанного файла или команды
- интерактивный сеанс — команды отладки, выполняемые из интегрированной консоли
- Подключение — Подключение отладчика к работающему процессу хоста 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:
Видео
- использование Visual Studio Code в качестве редактора PowerShell по умолчанию
- Visual Studio Code: подробное руководство по отладке скриптов PowerShell
Записи блога
- расширение PowerShell
- написание и отладка скриптов PowerShell в Visual Studio Code
- Руководство по отладке Visual Studio Code
- Отладка PowerShell в Visual Studio Code
- Начало разработки PowerShell в Visual Studio Code
- возможности редактирования Visual Studio Code для разработки PowerShell— часть 1
- Возможности редактирования в Visual Studio Code для разработки на PowerShell — часть 2
- Отладка скрипта PowerShell в Visual Studio Code— часть 1
- Отладка скрипта PowerShell в Visual Studio Code— часть 2
Исходный код проекта расширения PowerShell
Исходный код расширения PowerShell можно найти на GitHub.
Если вы заинтересованы в участии, будем очень благодарны за пулл-реквесты. Следуйте инструкциям по документации разработчика, на сайте GitHub, чтобы приступить к работе.
PowerShell