В контексте кода Visual Studio:
По существу применяются 3 различных типа оболочек :
с расширением PowerShell установлено, применяется еще одна оболочка:
- Указанный c исполняемый файл PowerShell для использования в Интегрированная консоль PowerShell , который обеспечивает тесную интеграцию с редактированием и поддержкой отладки кода PowerShell.
Эти оболочки:
- могут быть настроены отдельно y
- может отличаться поведением по умолчанию
- только некоторые из них позволяют вам указать параметры запуска , например
-NoProfile
в вашем случае .
Следующая выдержка из файла Settings.json
(> Preferences: Open Settings (JSON)
) показывает соответствующие настройки для каждого (начиная с VSCode v1.42 / PowerShell Extension 2020.3.0):
{
// ...
// **General-purpose integrated-terminal shell**:
// Mere file *names* work for executables that are in %PATH%; e.g., "cmd.exe"
// If you need to specify a file *path*, use "\\" or "/" as the path separator.
// On Unix-like platforms, replace ".windows" with ".osx" or ".linux",
// as appropriate.
"terminal.integrated.shell.windows": "powershell.exe",
// Startup parameters to pass to the specified shell.
// On Unix-like platforms, replace ".windows" with ".osx" or ".linux",
// as appropriate.
"terminal.integrated.shellArgs.windows": "-NoProfile",
// **Automation-tasks shell**,
// for the tasks defined in "tasks.json" and for debugging:
// This overrides the default shell configured above.
// Note: There is NO way to pass startup arguments.
"terminal.integrated.automationShell.windows": "cmd.exe",
// **External-terminal shell**:
// The executable to use for opening an external terminal window
// (> Open New External Terminal).
// Note: There is NO way to pass startup arguments,
// so you cannot suppress profile loading, for instance.
"terminal.external.windowsExec": "powershell.exe",
// **PowerShell Integrated Console**:
// Profile loading is *disabled* by default; you can enable it here, but
// note that the PowerShell Integrated Console has its own,
// separate $PROFILE location, which differs from the one in a
// regular console window. If you want to load your regular profile,
// place the following statement in the $PROFILE file of
// the Integrated Console:
// . ($PROFILE -replace '\.VSCode', '.PowerShell')
// (Open the profile file for editing by submitting the following command
// from the Integrated Console:
// code $PROFILE
// )
"powershell.enableProfileLoading": false,
// ...
}
Если вы хотите настроить интегрированную консоль PowerShell для использования другой редакции / версии PowerShell :
* Метод 1126 *. Когда на встроенной консоли PowerShell активна вкладка Terminal
на панели VSCode (нижняя половина экрана), щелкните значок номера версии в правом нижнем углу (например, )
- Выберите другую версию, если она имеется, с префиксом
Switch to:
- Если интересующая версия / издание не отображается, вы должны добавить ее путь к исполняемому файлу через ваш
Settings.json
файл (см. Следующий пункт).
Через settings.json
(> Preferences: Open Settings (JSON)
):
* 1 106 * Свойство powershell.powerShellAdditionalExePaths
со значением массива позволяет добавлять полные исполняемые пути версий PowerShell, которые расширение не может найти автоматически - см. Пример ниже.
Свойство powershell.powerShellDefaultVersion
определяет, какую версию использовать по умолчанию ; поскольку вы должны указать его с помощью отображаемого имени , которое включает автоматически выбранное отображаемое имя для автоматически обнаруженных версий, проще всего сделать выбор с помощью GUI, как показано выше.
{
// ...
// The paths to any PowerShell executables that the extension cannot auto-discover.
// The "versionName" is a self-chosen name that is offered in the
// version-selector menu that pops up when you click on the version number
// near the right edge of the status bar when the
// PowerShell Integrated Console is active.
// (The currently active version is displayed by its actual characteristics,
// not by its "versionName" property; e.g.,
// "PowerShell 7.0 (X64) Core Edition [7.0.0]")
"powershell.powerShellAdditionalExePaths": [
{
"versionName": "Latest Preview",
"exePath": "C:\\Users\\jdoe\\AppData\\Local\\Microsoft\\powershell\\pwsh.exe"
}
],
// The "versionName" property of the PowerShell executable to use by default.
// Note: To switch to an executable that the extension found automatically,
// it is simplest to use the version-selector menu.
"powershell.powerShellDefaultVersion": "Latest Preview",
// ...
}