L'extension Powershell se bloque dès qu'un script avec des fonctions est chargé
Cela fonctionnait bien, jusqu'à ce que j'installe la communauté Visual Studio pour créer des projets WPF pour une interface graphique PowerShell Après l'installation, l'extension Powershell a commencé à planter. Maintenant, tous les fichiers qui contiennent une fonction, plantent l'extension Powershell. Cela se produit quelques secondes après l'ouverture du fichier. Quand je commente la fonction et redémarre l'extension Powershell, cela fonctionne et je peux déboguer.
J'ai réinstallé le code VS et l'extension pour PowerShell, mais jusqu'à présent, pas de chance. J'ai simplifié le problème en:
Windows 2012 Version: 1.33.0 (system setup) Commit: `0dd516dd412d42323fc3464531b1c715d51c4c1a` Date: 2019-04-04T15:14:28.026Z Electron: 3.1.6 Chrome: 66.0.3359.181 Node.js: 10.2.0 V8: 6.6.346.32 OS: Windows_NT x64 6.3.9600
Ce qui précède fonctionne bien, mais dès que je retire les commentaires, il plante. Il plante dès que je passe à l'onglet avec le script contenant les fonctions
Extention host log:
9.4.2019 14:18:46 [NORMAL] - Path specified by 'powerShellExePath' setting - '' - not found, reverting to default PowerShell path.
9.4.2019 14:18:46 [NORMAL] - Language server starting --
9.4.2019 14:18:46 [NORMAL] - exe: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
9.4.2019 14:18:46 [NORMAL] - args: C:\Users\sce44459\.vscode\extensions\ms-vscode.powershell-
1.12.0\modules\PowerShellEditorServices\Start-EditorServices.ps1
-HostName 'Visual Studio Code Host' -HostProfileId 'Microsoft.VSCode' -HostVersion '1.12.0' -AdditionalModules @('PowerShellEditorServices.VSCode') -BundledModulesPath
'C:\Users\sce44459\.vscode\extensions\ms-vscode.powershell-1.12.0\modules'
-EnableConsoleRepl -LogLevel 'Normal' -LogPath 'C:\Users\sce44459\.vscode\extensions\ms-vscode.powershell-1.12.0\logs\1554812326-d490a1a0-df66-47c6-a741-74dc46a8873b1554810449036\EditorServices.log' -SessionDetailsPath 'C:\Users\sce44459\.vscode\extensions\ms-vscode.powershell-1.12.0\sessions\PSES-VSCode-5164-189789'
-FeatureFlags @()
9.4.2019 14:18:47 [NORMAL] - powershell.exe started, pid: 6372
9.4.2019 14:18:50 [NORMAL] - Language server started.
9.4.2019 14:18:50 [NORMAL] - {"languageServiceTransport":"NamedPipe","languageServicePipeName":"\\\\.\\pipe\\PSES_gbzaczkk.xnh","debugServiceTransport":"NamedPipe","status":"started","debugServicePipeName":"\\\\.\\pipe\\PSES_3w4pqudu.4xm"}
9.4.2019 14:18:50 [NORMAL] - Connecting to language service on pipe \\.\pipe\PSES_gbzaczkk.xnh...
9.4.2019 14:18:50 [NORMAL] - Language service connected.
9.4.2019 14:18:57 [NORMAL] - powershell.exe terminated or terminal UI was closed```
journal des extensions:
TypeError: Cannot read property 'command' of undefined at resolveFunc (C:\Users\sce44459\.vscode\extensions\ms-vscode.powershell-1.12.0\out\src\session.js:254:39) [2019-04-09 14:24:21.006] [exthost] [error] [ms-vscode.powershell] provider FAILED [2019-04-09 14:24:21.006] [exthost] [error] TypeError: Cannot read property 'command' of undefined```
\#function getservice(){
get-service
\#}
Je n'ai pas pu en trouver plus dans les journaux d'événements. Quelqu'un aurait-il une idée de ce qui pourrait causer ceci ou quelles informations pourraient aider à le déboguer?
3 Réponses :
J'avais les mêmes problèmes de connexion à une session distante avec VS Code, j'obtenais la même sortie de VS Code. J'ai pu contourner ce problème en désinstallant puis en réinstallant l'extension PowerShell. J'espère que cela vous aidera.
Il semble que je l'ai enfin craqué. La réinstallation n'a pas fonctionné (après la réinstallation, j'ai remarqué que tous mes modules étaient toujours là). J'ai maintenant désinstallé tous les modules (PowerShell, Git History, Git Project Manager, Git Lens). Ensuite, j'ai désinstallé le code VS-> redémarrer-> réinstaller-> réinstaller le module Powershell. Maintenant ça marche.
J'espère que cela aide quelqu'un d'autre, et merci à tous ceux qui ont pris le temps d'y jeter un œil, très apprécié.
Voici ma solution:
Rouvrez VSCode en tant qu'administrateur.
Si / Lorsque vous êtes invité à mettre à jour PackageManager, sélectionnez Oui ou exécutez cette commande dans un terminal Powershell à l'intérieur de VSCode (mettez à jour la version en conséquence):
powershell.exe -NoLogo -NoProfile -Command 'Install-Module -Name PackageManagement -Force -MinimumVersion 1.4.6 -Scope CurrentUser -AllowClobber'
Placez un point d'arrêt sur le fichier ps1 et appuyez sur F5 ou Exécuter> Démarrez le débogage (et vous remarquerez qu'il s'exécute sous Powershell Integrated Console et non sous Windows Powershell selon https://github.com/PowerShell/vscode-powershell/issues/2897#issuecomment-677963284 )