Impossible d'installer le package nuget en raison du message "Échec de l'initialisation de l'hôte PowerShell"

173

Tout à coup, j'obtiens cette erreur lors de la mise à niveau des packages Nuget. Aucun des correctifs que j'ai rencontrés ne fonctionne. J'utilise Visual Studio 2013.

'Newtonsoft.Json 6.0.3' est déjà installé.

Ajout de 'Newtonsoft.Json 6.0.3' aux tournois.Notifications.

'Newtonsoft.Json 6.0.3' a été ajouté avec succès aux Tournaments.Notifications.

Exécution du fichier de script 'F: \ My Webs \ BasketballTournaments \ MainBranch \ packages \ Newtonsoft.Json.6.0.3 \ tools \ install.ps1'.

Échec de l'initialisation de l'hôte PowerShell. Si votre paramètre de stratégie d'exécution PowerShell est défini sur AllSigned, ouvrez d'abord la console du gestionnaire de package pour initialiser l'hôte.

Console du gestionnaire de packages

La tentative d'exécution de l'opération InitializeDefaultDrives sur le fournisseur 'FileSystem' a échoué.

Si j'attends la fin de l'initialisation dans la console, j'ai pu ajouter des packages.

Mike Flynn
la source
Salut Mike. J'ai exactement le même problème. Avez-vous réussi à résoudre le problème et vous disposez d'un gestionnaire de paquets nuget fonctionnel?
Magnus Backeus
J'ai le même problème. J'ai déjà défini la politique d'exécution de Powershell pour qu'elle soit sans restriction, mais cela n'aide pas. J'installe le package dans la console du gestionnaire de package sans problème.
Adamy
5
Je viens de rencontrer le même problème. Cette solution m'a aidé: stackoverflow.com/questions/10457039/…
Oleksii Aza
1
J'ai eu la même erreur sur Windows 10. J'ai dû activer Powershell 2.0 à partir des "programmes et fonctionnalités"> "Activer ou désactiver les fonctionnalités Windows", puis tout a bien fonctionné après le redémarrage de Visual Studio.
twoleggedhorse

Réponses:

193

La définition d'une stratégie d'exécution sur RemoteSigned ou Unrestricted devrait fonctionner. Il doit être modifié en mode administrateur via une console PowerShell. Sachez que les modifications seront appliquées en fonction de la version bit de la console PowerShell, donc 32 bits ou 64 bits. Donc, si vous souhaitez installer un package dans Visual Studio (version 32 bits) qui nécessite une stratégie spécifique, vous devez modifier les paramètres de la stratégie via PowerShell (x86).

La commande dans PowerShell (en tant qu'administrateur) pour définir la stratégie sur sans restriction (comme indiqué par @Gabriel dans les commentaires) est:

start-job { Set-ExecutionPolicy Unrestricted } -RunAs32 | wait-job | Receive-Job

Après avoir défini la stratégie sur illimitée, vous souhaiterez la rétablir à son origine une fois l'installation terminée.

jellonek
la source
83
A travaillé pour moi. Lorsque vous modifiez ExecutionPolicy dans PowerShell sur les systèmes 64 bits, il ne le changera que pour la version 64 bits de PowerShell. Mais VS est un processus 32 bits et la "Console du gestionnaire de packages" est également un processus 32 bits. Pour résoudre ce problème, vous pouvez exécuter start-job { Set-ExecutionPolicy Unrestricted } -RunAs32 | wait-job | Receive-Jobdans une console PowerShell 64 bits.
Gabriel
69
Vous devez redémarrer Visual Studio par la suite.
Danny Varod
Fonctionne très bien. C'est dommage que le package lui-même suggère une solution qui ne fonctionne pas. Et n'oubliez pas d'activer la politique d'origine par la suite.
Mohoch
9
Fermé le VS 2013, exécuté en tant qu'administrateur, a commencé à fonctionner correctement ... wiered
Rusty
9
J'ai eu ce problème dans VS2015 et la simple mise à jour du gestionnaire de paackage NuGet a résolu le problème
Shawson
55

N'oubliez pas de redémarrer Visual Studio après avoir effectué le Set-ExecutionPolicy Unrestricteddans PowerShell (x86).

Si cela ne fonctionne pas, essayez Set-ExecutionPolicy RemoteSigneddans PowerShell (x86), puis redémarrez Visual Studio.

Sirar Salih
la source
51

Par défaut, l'exécution du script PowerShell est très limitée pour des raisons de sécurité. Pour une utilisation dans NuGet, nous devons ouvrir les portes.

1. Étape

Ouvrir Windows PowerShell, exécuter en tant queAdministrator

2. Étape

NuGet utilise la console 32 bits, il ne sera donc pas affecté par les modifications apportées à la console 64 bits. Exécutez le script suivant pour vous assurer que vous configurez la console 32 bits.

start-job { Set-ExecutionPolicy RemoteSigned } -RunAs32 | wait-job | Receive-Job

3. Étape

Redémarrer Visual Studio

Michael Sander
la source
Je vous remercie! Ce n'est que lorsque j'ai exécuté la commande Windows PowerShell comme vous l'avez indiqué que cela a fonctionné. Merci beaucoup!
Echiban
Cela a fonctionné pour l'environnement suivant: Windows XP, Visual Studio 2010 Web Developer Express. J'ai fermé le studio visuel. Téléchargé microsoft.com/en-us/download/confirmation.aspx?id=16818 Powershell. Powershell installé. Exécutez PowerShell et exécutez la tâche de démarrage {Set-ExecutionPolicy RemoteSigned} -RunAs32 | attente-travail | Recevoir-Job. Démarrage d'un studio visuel et utilisation de nuget. Ça a marché.
Développeur Marius Žilėnas
1
@muflix: pas possible dans ce cas, du moins je ne saurais pas comment. En fin de compte, c'est un problème de sécurité et donc laissé aux administrateurs
Michael Sander
devons-nous fermer les portes après? Comment?
Omid-RH
le fermer laisserait nuget inopérant car il doit exécuter des scripts lors de l'installation des paquets
Michael Sander
25

J'ai le même problème avec la boîte de dialogue Gérer les packages NuGet, j'utilise une solution de contournement qui peut aider les autres - exécutée à partir de la console du gestionnaire de packages:

Si j'utilise le package d'installation de la commande PowerShell en ligne de commande, tout va bien.

Je suis opposé à la modification d'un paramètre de sécurité "juste pour le faire fonctionner".

Allan
la source
Vous devriez poser une nouvelle question.
Tay2510
3
Je ne pense pas que cela justifie une nouvelle question, car elle est directement liée au problème soulevé. J'ai reformulé le message pour ne pas ressembler tant à une nouvelle question qu'à la rêverie d'un développeur mécontent.
Allan
@Allan La fin de cette réponse (post-édition) doit être soit un commentaire, soit une question.
Danny Varod
Merci pour votre contribution Danny, j'espérais partager mon expérience et une solution possible pour les personnes qui ne voulaient pas ou ne pouvaient pas modifier les paramètres de sécurité. La réponse se lit mieux maintenant.
Allan
Get-Package -Filter PartOfPackageNamepour rechercher dans le package installé, Install-Package PackageName -Version 7.0.1pour installer une version spécifique du package. N'oubliez pas de sélectionner Projet par défaut en haut de la console du gestionnaire de package
Lu55
24

Aucune réponse n'a fonctionné pour moi.

Toutes les politiques étaient correctes mais j'ai l'erreur lors de l'installation d'un package

Échec de l'initialisation de l'hôte PowerShell. Si votre paramètre de stratégie d'exécution PowerShell est défini sur AllSigned, ouvrez d'abord la console du gestionnaire de package pour initialiser l'hôte.

La solution : j'ai désinstallé le plugin nuget package manager et réinstallé .

Troopers
la source
4
La désinstallation et la réinstallation étaient la seule chose qui aidait en effet. Ce problème est également décrit ici: github.com/NuGet/Home/issues/974
Zsolt
2
J'ai réinstallé le package NuGet VSIX sans le désinstaller au préalable, ce qui a résolu le problème.
Dave
+1 marketplace.visualstudio.com/… pour VS2015
hoang
16

L'exécution de Visual Studio en tant qu'administrateur a fonctionné pour moi.

Sudhir
la source
1
Idem, bien que les gens doivent se rappeler de fermer VS une fois votre paquet installé et de le rouvrir avec les autorisations normales.
Liam Laverty du
7

J'ai eu ce problème avec mon Visual Studio 2015. J'ai à nouveau désinstallé et réinstallé NuGet Package Manager. Cela a fonctionné pour moi.

Henry.K
la source
Comment? Il se plaint d'avoir été utilisé par un autre processus
Brandon
7

J'ai mis à jour le gestionnaire de paquets Nuget et cela m'a corrigé.

DeclanMcD
la source
6

Cela a commencé avec la version 6.0.4 récemment pour moi, je ne pense pas que ce soit une très bonne solution, mais voici ce qui m'a aidé. Fermer Visual Studio

  1. Ouvrez une invite Windows PowerShell en tant qu'administrateur (très important) et exécutez la commande suivante: Set-ExecutionPolicy Bypass
  2. Ouvrez Visual Studio, ouvrez votre solution et utilisez Nuget pour installer JSON.Net (ou tout autre package qui l'inclut en tant que dépendance).
  3. Une fois que tout fonctionne, je recommande de redéfinir la politique d'exécution PowerShell sur Restricted avec la commande suivante: Set-ExecutionPolicy Restricted
Goutam Singh
la source
5

J'ai eu le même problème après la mise à niveau vers Windows 10.

Cela a fonctionné pour moi

  1. Fermer Visual Studio
  2. Exécutez Powershell en tant qu'administrateur
  3. Courir Set-ExecutionPolicy Unrestricted
  4. Exécutez Visual studio en tant qu'administrateur
  5. Nettoyez le projet et ajoutez le package nuget

Si cela ne fonctionne toujours pas, essayez de modifier devenv.exe.config

Visual Studio 2013: C:\Users\<UserName>\AppData\Local\Microsoft\VisualStudio\12.0

Visual Studio 2015: C:\Users\<UserName>\AppData\Local\Microsoft\VisualStudio\14.0

Ajoutez ce qui suit

    <dependentAssembly>
        <assemblyIdentity name="System.Management.Automation" publicKeyToken="31bf3856ad364e35" />
        <publisherPolicy apply="no" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.PowerShell.Commands.Utility" publicKeyToken="31bf3856ad364e35" />
      <publisherPolicy apply="no" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.PowerShell.ConsoleHost" publicKeyToken="31bf3856ad364e35" />
      <publisherPolicy apply="no" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.PowerShell.Commands.Management" publicKeyToken="31bf3856ad364e35" />
      <publisherPolicy apply="no" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.PowerShell.Security" publicKeyToken="31bf3856ad364e35" />
      <publisherPolicy apply="no" />
    </dependentAssembly>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.PowerShell.Commands.Diagnostics" publicKeyToken="31bf3856ad364e35" />
      <publisherPolicy apply="no" />
    </dependentAssembly>
BehranG BinA
la source
L'ajout de dépendances Powershell à devenv.exe.configest le seul correctif qui a fonctionné pour moi à la fois dans VS2013 et VS2015. VS2013: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\12.0VS2015: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\14.0Ce qui n'a pas fonctionné pour moi, c'est la modification de la politique d'exécution, la modification de la politique d'exécution dans le registre, la réinstallation du gestionnaire de packages, la réparation de Visual Studio, le redémarrage de Visual Studio, le redémarrage de Windows.
Rubanov le
Wooooow. Toutes les autres méthodes ne l'ont pas résolu pour moi dans VS 2015. Seul l'ajout des dépendances à devenv.exe.config a aidé. Après cela, j'ai également trouvé stackoverflow.com/questions/12638289/… . Merci beaucoup!!!
nharrer le
4

Par défaut, mon Windows 10 64 bits n'avait activé que la version 1.0 de Powershell. J'ai changé le panneau de configuration / Programmes / Programmes et fonctionnalités / Activer les fonctionnalités Windows.

Assurez-vous que le moteur Windows Powershell 2.0 est activé.

Redémarrez VS2015 en mode non administrateur et avec tous les packages installés correctement.

DKrause
la source
J'ai également Windows 10 64 bits et je devais activer le moteur Windows Powershell 2.0 pour que la console du gestionnaire de package fonctionne. Il est étrange que ce problème existe depuis un certain temps et que Microsoft n'ait pas activé le moteur Powershell 2.0 dans le cadre du processus d'installation de Visual Studio 2017.
JSWilson
4

J'ai eu le même problème avec vs2013 et la modification de la politique d'exécution ne l'a pas résolu. La seule solution de travail que j'ai trouvée était de désinstaller Nuget de VS et de l'installer à nouveau. Les étapes sont ici: https://stackoverflow.com/a/32619961/3853238

Doğa Benli
la source
3

Tout ce que j'avais à faire était de redémarrer Visual Studio, d'ouvrir le NuGet Package Manager Console, puis d'utiliser la Manage NuGet Packagesboîte de dialogue fonctionnait.

Sans nom
la source
3

Fermez toutes les instances de Visual Studio et réessayez. Cela a fonctionné pour moi :)

Mohini Mhetre
la source
3

Si les réponses ci-dessus ne fonctionnent pas pour vous -

  1. Ouvrez Run - Windows + R
  2. Ouvrez l'éditeur de registre - tapez regedit.exe
  3. Ouvrir - HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ PowerShell
  4. Dans le volet de droite - Modifiez «ExecutionPolicy» et gardez ses «Données de valeur» vides.
  5. Redémarrez votre studio visuel, maintenant votre Powershell peut s'initialiser correctement.
Richie Rich
la source
2

Après avoir essayé divers correctifs suggérés, il a finalement été résolu en mettant à jour l'extension NuGet Package Manager dans Visual Studio.

Cela se fait sous Outils -> Extensions et mises à jour, puis dans la boîte de dialogue Extensions et mises à jour Mise à jour -> Galerie Visual Studio. Un redémarrage de Visual Studio peut être nécessaire.

Oskar Sjöberg
la source
2

Si vous utilisez VS 2013 Update 5, vous devez installer manuellement une mise à jour 2.8.7 pour NuGet Packet Manager.

Le rapport de bogue contient plus de détails.

Vladimir Joukov
la source
2

VS2015: Mise à jour du NuGet et fonctionnement.

Gubi
la source
Pareil ici. Utilisait VS2015 et venait de mettre à jour le gestionnaire de packages Nuget et cela a fonctionné.
iheartcsharp
2

Si aucune des solutions ci-dessus ne vous aide, voyez si vous pouvez mettre à jour Visual Studio.

J'ai eu le même problème avec la communauté Visual Studio 2017 lorsque j'ai essayé d'installer Newtonsoft.Json. leExecutionPolicy changement n'a pas aidé (j'ai essayé d'utiliser à la fois PowerShell et l'éditeur de registre). J'ai également essayé de désinstaller et d'installer NuGet.

Après avoir exécuté le fichier d'installation de VS2017, il a demandé la mise à jour de Visual Studio. Tous les problèmes ont disparu après la mise à jour.

Tigran
la source
1

Pour moi, définir la stratégie d'exécution sur Non restreint ne fonctionnait pas. J'ai dû réparer l' installation de vs2013 en allant dans le Panneau de configuration. La réparation de l'installation a fonctionné pour moi.

DanKodi
la source
1

J'ai eu le même problème et cela l'a résolu pour moi (Powershell en tant qu'administrateur):

Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value ByPass 
Sven Bardos
la source
1

après avoir essayé toutes les solutions suggérées, rien n'a fonctionné sur la mise à jour 2 de VS 2015

la suppression du dossier du package du dossier de la solution et sa restauration à partir de Visual Studio ont fonctionné pour moi

Nerdroid
la source
1

J'avais un problème similaire. Je l'ai corrigé en activant la fonctionnalité «Windows PowerShell 2.0» dans «Activer ou désactiver les fonctionnalités Windows». Notez que cette fonctionnalité est activée par défaut, je l'ai désactivée manuellement il y a quelques jours.

Je travaille sur Windows 10 Pro 64 bits et le même problème était avec Visual Studio 2015 et 2017 (application 32 bits et 64 bits)

Adnan Mulalic
la source
0

Télécharger et installer des modèles d'administration pour Windows PowerShell

Next:  Powershell x86 from As Administrator

Run:   Get-ExecutionPolicy -List  , and see if you have RemoteSigned etc..

1. 5 different scopes  Set-ExecutionPolicy "RemoteSigned" -Scope Process -Confirm:$false

2. Machine and User Policy you have to set through the Group Policy Administration Template in 2 areas.

MISE À JOUR - MODIFIER:

Set ALL of them to  "Undefined" and ONLY the LocalMachine to "Restricted" 

C'est ce qui pourrait être corrigé après avoir donné à mon PowerShell plus d'autorisations sans savoir que cela gâcherait Visual Studio 2013 et 2015

Tom Stickel
la source
0

Ce problème n'est pas toujours lié à la stratégie d'exécution PowerShell. Mon ordinateur est configuré comme «illimité» pour PowerShell x64 et x86, mais je reçois toujours ce message d'erreur de temps en temps dans Visual Studio 2013.

Lorsque j'essaye d'ouvrir la console du gestionnaire de packages:

Windows PowerShell a mis à jour votre stratégie d'exécution avec succès, mais le paramètre est remplacé par une stratégie définie à une portée plus spécifique. En raison de la substitution, votre shell conservera sa politique d'exécution effective actuelle de Unrestricted. Tapez "Get-ExecutionPolicy -List" pour afficher vos paramètres de stratégie d'exécution. Pour plus d'informations, consultez "Get-Help Set-ExecutionPolicy".

Ce n'est pas un message d'erreur valide.

Le redémarrage de Visual Studio ne résout pas toujours le problème.

L'exécution du processus en tant qu'administrateur ne résout jamais le problème.

Comme Declan, la dernière mise à jour du plugin Package Manager a résolu le problème: 2.8.60723.765

Vilmir
la source
0

Définissez la stratégie d'exécution sur Bypass au lieu de Unrestricted ou RemoteSigned; ce tutoriel donne des instructions plus complètes . De plus, si vous rencontrez des problèmes lors de l'utilisation de PowerShell pour modifier la stratégie, l'auteur vous montre comment la modifier dans Regedit.

Charles Driver Jr.
la source
Unrestricted devrait fonctionner aussi bien - il vous avertit simplement lorsque vous faites quelque chose de dangereux, où Bypass irait de l'avant et exécuterait la commande.
Auspex
0

Il y a énormément de coups de couteau dans le noir ici, alors je vais ajouter le mien.

Dans mon cas, j'ai également reçu un message indiquant qu'il manquait un fichier de verrouillage et une recommandation à exécuter dnu restoredans la console du gestionnaire de packages. Je l'ai fait, redémarré VS, et tout fonctionne maintenant.

Auspex
la source
0

Ce qui a fonctionné pour moi, c'est:

  1. Définissez la stratégie d'exécution sur Non restreint.
  2. Find-Module ISEModuleBrowserAddon | Install-Module
  3. Import-Module ISEModuleBrowserAddon
  4. Find-Module ISEScriptAnalyzerAddOn | Install-Module
  5. Import-Module ISEScriptAnalyzerAddOn
  6. Import-Module ScriptBrowser
  7. Dans ISE, vous avez besoin Enable-ScriptBrowser

Et vous avez le module, le script et l'analyseur dans votre ISE.

Exécuter dans Win 10 Pro, hôte de console x64 5.0.10586.122

Bonne chance!

Dima
la source