Impossibile installare il pacchetto nuget a causa di "Impossibile inizializzare l'host PowerShell"


173

Improvvisamente, ricevo questo errore durante l'aggiornamento dei pacchetti Nuget. Nessuna delle correzioni che ho riscontrato funziona. Sto usando Visual Studio 2013.

"Newtonsoft.Json 6.0.3" già installato.

Aggiunta di "Newtonsoft.Json 6.0.3" a Tornei. Notifiche.

"Newtonsoft.Json 6.0.3" è stato aggiunto correttamente ai tornei.

Esecuzione del file di script "F: \ My Webs \ BasketballTournaments \ MainBranch \ pacchetti \ Newtonsoft.Json.6.0.3 \ tools \ install.ps1".

Impossibile inizializzare l'host PowerShell. Se l'impostazione del criterio di esecuzione di PowerShell è impostata su AllSigned, aprire la Console Gestione pacchetti per inizializzare prima l'host.

Console di gestione pacchetti

Tentativo di eseguire l'operazione InitializeDefaultDrives sul provider "FileSystem" non riuscito.

Se aspetto che l'inizializzazione finisca nella console, sono stato in grado di aggiungere alcuni pacchetti.


Ciao Mike. Ho lo stesso identico problema. Sei riuscito a risolvere il problema e hai un gestore di pacchetti nuget funzionante?
Magnus Backeus,

Ho lo stesso problema. Ho già impostato la politica di esecuzione di Powershell su Senza restrizioni, ma non aiuta. Installo il pacchetto nella console di Package Manager senza problemi.
Adamy

5
Ho appena riscontrato lo stesso problema. Questa soluzione mi ha aiutato: stackoverflow.com/questions/10457039/…
Oleksii Aza,

1
Ho avuto lo stesso errore su Windows 10. Ho dovuto abilitare Powershell 2.0 da "programmi e funzionalità"> "Attiva o disattiva funzionalità di Windows" e poi tutto ha funzionato bene dopo aver riavviato Visual Studio.
cavallo a due punte

Risposte:


193

L'impostazione di un criterio di esecuzione su RemoteSigned o Unrestricted dovrebbe funzionare. Deve essere modificato in modalità amministratore tramite una console di PowerShell. Tenere presente che le modifiche verranno applicate in base alla versione bit della console di PowerShell, quindi a 32 bit o 64 bit. Quindi, se si desidera installare un pacchetto in Visual Studio (versione a 32 bit) che richiede un criterio specifico, è necessario modificare le impostazioni del criterio tramite PowerShell (x86).

Il comando in PowerShell (come amministratore) per impostare la politica su senza restrizioni (come notato da @Gabriel nei commenti) è:

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

Dopo aver impostato la politica su senza restrizioni, al termine dell'installazione sarà necessario ripristinare la politica originale.


83
Ha funzionato per me. Quando si modifica ExecutionPolicy in PowerShell su sistemi a 64 bit, verrà modificato solo per la versione a 64 bit di PowerShell. Ma VS è un processo a 32 bit e anche "Console gestore pacchetti" è un processo a 32 bit. Per risolvere questo problema, è possibile eseguire start-job { Set-ExecutionPolicy Unrestricted } -RunAs32 | wait-job | Receive-Jobin una console PowerShell a 64 bit.
Gabriel

69
È necessario riavviare Visual Studio in seguito.
Danny Varod,

Funziona bene. È un peccato che il pacchetto stesso suggerisca una soluzione che non funziona. E non dimenticare di attivare la politica originale in seguito.
Mohoch,

9
Chiuso il VS 2013, eseguito come amministratore, ha iniziato a lavorare bene ... wiered
Rusty

9
Ho riscontrato questo problema in VS2015 e il semplice aggiornamento del gestore di paackage NuGet ha risolto il problema
Shawson,

55

Ricorda di riavviare Visual Studio dopo aver eseguito Set-ExecutionPolicy Unrestricted PowerShell (x86).

Se il Set-ExecutionPolicy RemoteSignedproblema persiste , provare in PowerShell (x86), quindi riavviare Visual Studio.


51

Per impostazione predefinita, l'esecuzione dello script PowerShell è molto limitata per motivi di sicurezza. Per l'utilizzo in NuGet è necessario aprire le porte.

1. Passaggio

Apri Windows PowerShell, esegui comeAdministrator

2. Passaggio

NuGet sta utilizzando la console a 32 bit, quindi non sarà influenzato dalle modifiche alla console a 64 bit. Esegui il seguente script per assicurarti di configurare la console a 32 bit.

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

3. Passaggio

Ricomincia Visual Studio


Grazie! Solo quando ho eseguito il comando PowerShell di Windows nel modo indicato, ha funzionato. Grazie mille!
Echiban,

Funzionava con il seguente ambiente: windows xp, visual studio 2010 Web developer express. Ho chiuso lo studio visivo. Download microsoft.com/en-us/download/confirmation.aspx?id=16818 Powershell. Powershell installato. Eseguire powershell ed eseguire start-job {Set-ExecutionPolicy RemoteSigned} -RunAs32 | attesa lavoro | Ricevi lavoro. Ha iniziato Visual Studio e usato Nuget. Ha funzionato.
Sviluppatore Marius Žilėnas,

1
@muflix: impossibile in quel caso, almeno non saprei come. Alla fine è un problema di sicurezza e quindi lasciato agli amministratori
Michael Sander,

dobbiamo chiudere le porte dopo? Come?
Omid-RH

chiudendolo si renderebbe inutilizzabile Nuget poiché deve eseguire gli script durante l'installazione dei pacchetti
Michael Sander,

25

Ho lo stesso problema con la finestra di dialogo Gestisci pacchetti NuGet, utilizzo una soluzione che può aiutare gli altri - in esecuzione dalla console di gestione pacchetti:

Se uso il pacchetto di installazione del commandlet powershell della riga di comando, va tutto bene.

Sono contrario a modificare un'impostazione di sicurezza "solo per farlo funzionare".


Dovresti fare una nuova domanda.
Tay2510,

3
Non pensavo che ciò giustificasse una nuova domanda in quanto si riferiva direttamente alla questione sollevata. Ho riformulato il post in modo da non sembrare tanto una nuova domanda, ma le riflessioni di uno sviluppatore scontento.
Allan,

@Allan La fine di questa risposta (post-modifica) dovrebbe essere un commento o una domanda.
Danny Varod,

Grazie per il tuo contributo Danny, speravo di condividere la mia esperienza e una possibile soluzione per quelle persone che non volevano o non potevano cambiare le impostazioni di sicurezza. La risposta ora legge meglio.
Allan,

Get-Package -Filter PartOfPackageNameper cercare nel pacchetto installato, Install-Package PackageName -Version 7.0.1per installare la versione specifica del pacchetto. Non dimenticare di selezionare Progetto predefinito nella parte superiore della Console Gestione pacchetti
Lu55

24

Nessuna risposta ha funzionato per me.

Tutti i criteri erano corretti ma ho riscontrato l'errore durante l'installazione di un pacchetto

Impossibile inizializzare l'host PowerShell. Se l'impostazione del criterio di esecuzione di PowerShell è impostata su AllSigned, aprire la Console Gestione pacchetti per inizializzare prima l'host.

La soluzione : ho disinstallato il plug-in del gestore pacchetti nuget e lo ho reinstallato .


4
Disinstallare e reinstallare è stata l'unica cosa che ha davvero aiutato. Questo problema è anche descritto qui: github.com/NuGet/Home/issues/974
Zsolt

2
Ho reinstallato il pacchetto NuGet VSIX senza prima disinstallarlo, il che ha risolto il problema.
Dave,


16

L'esecuzione di Visual Studio come amministratore ha funzionato per me.


1
Idem, anche se le persone dovrebbero ricordare di chiudere VS una volta installato il pacchetto e riaprirlo con autorizzazioni regolari.
Liam Laverty,

7

Ho riscontrato questo problema con Visual Studio 2015. Ho disinstallato e reinstallato nuovamente NuGet Package Manager. Ha funzionato per me.


Come? Si lamenta che viene utilizzato da un altro processo
Brandon,

7

Ho aggiornato il gestore dei pacchetti Nuget e questo è stato risolto per me.


6

Questo ha iniziato ad accadere di recente con 6.0.4 per me, non penso che sia un'ottima soluzione, ma ecco cosa mi ha aiutato. Chiudi Visual Studio

  1. Aprire un prompt di Windows PowerShell come amministratore (molto importante) ed eseguire il comando seguente: Set-ExecutionPolicy Bypass
  2. Apri Visual Studio, apri la tua soluzione e usa Nuget per installare JSON.Net (o qualunque pacchetto lo includesse come dipendenza).
  3. Una volta che tutto funziona, ti consiglio di ripristinare i criteri di esecuzione di PowerShell con il seguente comando: Set-ExecutionPolicy Restricted

5

Ho avuto lo stesso problema dopo l'aggiornamento a Windows 10.

Questo ha funzionato per me

  1. Chiudi Visual Studio
  2. Esegui Powershell come amministratore
  3. Correre Set-ExecutionPolicy Unrestricted
  4. Esegui Visual Studio come amministratore
  5. Pulisci il progetto e aggiungi il pacchetto nuget

Se il problema persiste, prova a modificarlo 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

Aggiungi quanto segue

    <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>

L'aggiunta delle dipendenze Powershell alla devenv.exe.configè l'unica soluzione che ha funzionato per me sia in VS2013 che VS2015. VS2013: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\12.0VS2015: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\14.0Quello che non ha funzionato per me è stato cambiare la politica di esecuzione, cambiare la politica di esecuzione nel registro, reinstallare il gestore pacchetti, riparare Visual Studio, riavviare Visual Studio, riavviare Windows.
Rubanov,

Wooooow. Tutti gli altri metodi non l'hanno risolto per me in VS 2015. È stato utile solo l'aggiunta delle dipendenze a devenv.exe.config. Dopo questo ho trovato anche stackoverflow.com/questions/12638289/… . Grazie così tanto!!!
Nharrer


4

Per impostazione predefinita, nel mio Windows 10 a 64 bit era abilitata solo la versione 1.0 di Powershell. Ho cambiato il pannello di controllo / Programmi / Programmi e funzionalità / Attiva / disattiva le funzionalità di Windows.

Assicurarsi che il motore Windows Powershell 2.0 sia abilitato.

Riavviare VS2015 in modalità non amministratore e con tutti i pacchetti installati correttamente.


Ho anche Windows 10 a 64 bit e avevo bisogno di abilitare il motore di Windows Powershell 2.0 per far funzionare la console di Package Manager. È strano che questo problema esista da un po 'di tempo e Microsoft non abbia abilitato il motore Powershell 2.0 come parte del processo di installazione di Visual Studio 2017.
JSWilson,


3

Tutto quello che dovevo fare era riavviare Visual Studio, aprire NuGet Package Manager Consolee quindi usare la Manage NuGet Packagesfinestra di dialogo funzionava.


3

Chiudi tutte le istanze di Visual Studio e riprova. Ha funzionato per me :)


3

Se le risposte sopra riportate non funzionano per te -

  1. Apri Esegui - windows + R
  2. Apri l'editor del registro - digita regedit.exe
  3. Apri - HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ PowerShell
  4. Nel riquadro destro: modifica "ExecutionPolicy" e mantieni vuoti i suoi "Dati valore".
  5. Riavvia il tuo studio visivo, ora Powershell può inizializzare correttamente.

2

Dopo aver provato varie correzioni suggerite, è stato finalmente risolto aggiornando l'estensione NuGet Package Manager in Visual Studio.

Questo viene fatto in Strumenti -> Estensioni e aggiornamenti, quindi nella finestra di dialogo Estensioni e aggiornamenti Aggiornato -> Galleria di Visual Studio. Potrebbe essere necessario un riavvio di Visual Studio.



2

VS2015: aggiornato NuGet e funzionato.


Anch'io. Stava usando VS2015 e ha appena aggiornato Nuget Package Manager e ha funzionato.
iheartcsharp,


2

Se nessuna delle opzioni precedenti è di aiuto, vedi se riesci ad aggiornare Visual Studio.

Ho avuto lo stesso problema con Visual Studio 2017 Community quando ho provato a installare Newtonsoft.Json. IlExecutionPolicy modifica non ha aiutato (ho provato a utilizzare sia PowerShell che l'editor del registro). Ho anche provato a disinstallare e installare NuGet.

Dopo aver eseguito il file di installazione VS2017, ha chiesto l'aggiornamento di Visual Studio. Tutti i problemi sono scomparsi dopo l'aggiornamento.


1

Per me l'impostazione del criterio di esecuzione su Senza restrizioni non ha funzionato. Ho dovuto riparare l' installazione di vs2013 andando nel Pannello di controllo. Riparare l'installazione ha funzionato per me.


1

Ho avuto lo stesso problema e questo mi ha risolto (Powershell come admin):

Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value ByPass 

1

dopo aver provato tutta la soluzione suggerita, nulla ha funzionato sull'aggiornamento 2 di VS 2015

eliminare la cartella del pacchetto dalla cartella della soluzione e ripristinarla da Visual Studio ha funzionato per me


1

Ho avuto un problema simile. Ho risolto attivando la funzionalità "Windows PowerShell 2.0" in "Attiva o disattiva le funzionalità di Windows". Si noti che questa funzione è attivata per impostazione predefinita, l'ho disattivata manualmente alcuni giorni fa.

Sto lavorando su Windows 10 Pro 64 bit e lo stesso problema era con Visual Studio 2015 e 2017 (app 32 bit e 64 bit)


0

Scarica e installa i modelli amministrativi per 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.

AGGIORNAMENTO - MODIFICA:

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

Questo è ciò che potrebbe essere risolto dopo che avessi concesso alla mia PowerShell maggiori autorizzazioni senza sapere che avrebbe rovinato Visual Studio 2013 e 2015


0

Questo problema non è sempre correlato alla politica di esecuzione di PowerShell. La mia macchina è configurata come "Senza restrizioni" sia per PowerShell x64 che x86, ma visualizzo ancora questo messaggio di errore di tanto in tanto in Visual Studio 2013.

Quando provo ad aprire la console di Gestione pacchetti:

Windows PowerShell ha aggiornato correttamente il criterio di esecuzione, ma l'impostazione è sovrascritta da un criterio definito in un ambito più specifico. A causa dell'override, la shell manterrà la sua attuale politica di esecuzione effettiva di Senza restrizioni. Digita "Get-ExecutionPolicy -List" per visualizzare le impostazioni dei criteri di esecuzione. Per ulteriori informazioni, consultare "Get-Help Set-ExecutionPolicy".

Questo non è un messaggio di errore valido.

Il riavvio di Visual Studio non risolve sempre il problema.

L'esecuzione del processo come amministratore non risolve mai il problema.

Come Declan, l'ultimo aggiornamento del plugin Package Manager ha risolto il problema: 2.8.60723.765


0

Impostare il criterio di esecuzione su Bypass anziché su Unrestricted o RemoteSigned; questo tutorial fornisce istruzioni più complete . Inoltre, se si riscontrano problemi nell'uso di PowerShell per modificare il criterio, l'autore mostra come modificarlo in Regedit.


Senza restrizioni dovrebbe funzionare altrettanto bene - ti avverte semplicemente quando potresti fare qualcosa di non sicuro, dove Bypass andrebbe avanti ed eseguirà il comando.
Auspex,

0

Ci sono un sacco di pugnalate al buio qui, quindi aggiungerò la mia.

Nel mio caso, ho anche ricevuto un messaggio che mancava un file di blocco mancante e un consiglio da eseguire dnu restorenella console di gestione dei pacchetti. L'ho fatto, riavviato VS e ora tutto funziona.


0

Ciò che ha funzionato per me è:

  1. Impostare il criterio di esecuzione su Senza restrizioni.
  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. In ISE, hai bisogno Enable-ScriptBrowser

E hai modulo, script e analizzatore nel tuo ISE.

Esegui in Win 10 Pro, x64 Console Host 5.0.10586.122

In bocca al lupo!

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.