As VS Code continues to evolve, we need to keep in mind that technology keep changing fast. Some of us on Windows Insider Fast Ring get the opportunity to test drive the latest build of Windows 10.
But there are times when these upgrades with break something in one of our installed applications. Just don’t despair, as there’s always a workaround!
In the last Windows Insider Build 16193, did break in VS Code (and the VS Code Insider) editor as their new feature “PowerShell Integrated” won’t work. Microsoft knows about it an it will be fix down the line. This issue will impact both Windows PowerShell, and PowerShell Core.
This issue is only on Windows 10 Build 16193 including WSL (Windows 10 Bash), and will be corrected soon. In Windows 10 Bash console, PowerShell Core will get hung!
But, don’t worry! If you installed Ubuntu Desktop in Windows 10 Bash, then you can use PowerShell without any issues.
VS Code Workaround for “PowerShell Integrated”
If you want some information about this issue, feel free to checkout the following *link:
https://github.com/PowerShell/vscode-powershell/issues/742#issuecomment-301915916
*Note: Thanks to David Wilson (https://github.com/daviwil) for providing the workaround for VS Code.
In the link above, you’ll find the workaround to fix the issue. Basically, is creating the profile for VS Code (“Microsoft.VSCode_profile.ps1“) and adding the following line:
File: Microsoft.VSCode_profile.ps1
[System.Console]::OutputEncoding = [System.Text.Encoding]::ASCII
Write-Host “PowerShell version X.x.x loaded”
Where are these VS Code profile files been stored at in Windows?
Keep in mind. These profile files you need to create them at the following locations:
1. For Windows PowerShell – C:\Users\mtrinidad\Documents\WindowsPowerShell
2. For PowerShell Core – C:\Users\mtrinidad\Documents\PowerShell
3. In Linux, for standard profile.ps1 file – /opt/microsoft/powershell/6.0.0-beta.1
In order for the profile to be use in VS Code, we need to add the following line in the “setting.json” file: “powershell.enableProfileLoading”: true
What other PowerShell tools you can use in VS Code?
Use “Code Runner” extension. Then, from the menu look for “Preferences | Settings” which will open the “settings.json” you can configure which PowerShell version you want to use with the following lines:
1. For Windows PowerShell use:
“powershell”: “powershell.exe -ExecutionPolicy ByPass -File”,
2. For PowerShell Core:
“powershell”: “\”C:\\Program Files\\PowerShell\\6.0.0-beta.1\\powershell.exe\” -ExecutionPolicy ByPass -File”,
To execute a PowerShell script using Code Runner extension, just right-click and select “Run Code“. Then, all PowerShell results will be display under the “Output” section.
Changing “PowerShell Integrated” Terminal behavior
The normal behaviour when using the “PowerShell Integrated” is that you can highlight a few lines or execute the whole script and the results will be display in the “Terminal” section.
So, Yes! You can change the Terminal Integrated behavior to run other type of console: Bash, DOS, and even PowerShell version X as a standalone host. Just look at under the Settings Preferences “Settings.json” file by copy/paste the following line:
- For Dos – “terminal.integrated.shell.windows”: “cmd.exe”,
- For PowerShell Core – “terminal.integrated.shell.windows”: “C:\\Program Files\\PowerShell\\6.0.0-beta.1\\powershell.exe”,
- For Windows PowerShell – “terminal.integrated.shell.windows”: “powershell.exe”,
- For Linux Bash – “terminal.integrated.shell.linux”: “bash”,
- For Linux powershell – “terminal.integrated.shell.linux”: “powershell”,
Sample image “Settings.json”:
Go ahead! Give it a try and experiment.
Check Out Github
If you’re interested in contributing, providing feedback and helping with the development of PowerShell Core, don’t forget to check out Github: https://github.com/PowerShell/PowerShell
Always remember!
* For issues, bugs, and feedbacks with Windows PowerShell, use the following link at “Windows PowerShell UserVoice“: https://windowsserver.uservoice.com/forums/301869-powershell/category/148044-powershell-engine
* For issues, bugs, and feedbacks with PowerShell Core, use Github: https://github.com/PowerShell/PowerShell/issues