简体   繁体   中英

New way to specify Powershell 7 in Visual Studio Code?

I am trying to replace the default Powershell 5 with the newer Powershell 7, on Windows 11.

99% of the solutions on the internet say to add this to settings.json .

"terminal.integrated.shell.windows": "C:\\Program Files\\PowerShell\\7\\pwsh.exe"

However, this now gives a red squiggly line with the following message:

This is deprecated, the new recommended way to configure your default shell is by creating a terminal profile in #terminal.integrated.profiles.windows# and setting its profile name as the default in #terminal.integrated.defaultProfile.windows# . This will currently take priority over the new profiles settings but that will change in the future.(2)

There is one possibly related thread , but it only deals with defaulting it to the native Command Prompt , rather than re-jigging things to Powershell 7 .

So, what is the correct new way to provide Powershell 7 s path to VS Code, and also set it as the default terminal?

In earlier VSCode versions, the "terminal.integrated.shell.*" and "terminal.integrated.shellArgs.*" settings determined the default shell and its startup arguments for the integrated terminal.

These have been superseded by shell profiles , defined via "terminal.integrated.profiles.*" properties, and an associated "terminal.integrated.defaultProfile.*" property that contains the name of the profile to use by default , as shown below (use > Preferences: Open Settings (JSON) from the command palette to open your settings.json file):

"terminal.integrated.profiles.windows": {
    "PowerShell_7": {
      "source": "C:\\Program Files\\PowerShell\\7\\pwsh.exe",
      "icon": "terminal-powershell"
    },  // ...
}

// Make the profile defined above the default profile.
"terminal.integrated.defaultProfile.windows": "PowerShell_7" 

Note:

  • The above defines the default general-purpose shell for Visual Studio Code's integrated terminal.

  • For information on how to specify what PowerShell version to use with the special-purpose PIC (PowerShell Integrated Console) that comes with the PowerShell extension (for authoring and debugging PowerShell code), see this answer .

  • I would have expected Visual Studio Code to use your v7 version automatically , as it - if installed - normally takes precedence over Windows PowerShell.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM