No se puede instalar el paquete nuget debido a "Error al inicializar el host de PowerShell"

173

De repente, recibo este error al actualizar los paquetes de Nuget. Ninguna de las soluciones que he encontrado funciona. Estoy usando Visual Studio 2013.

'Newtonsoft.Json 6.0.3' ya está instalado.

Añadiendo 'Newtonsoft.Json 6.0.3' a los torneos. Notificaciones.

Se agregó con éxito 'Newtonsoft.Json 6.0.3' a los torneos. Notificaciones.

Ejecutando el archivo de script 'F: \ My Webs \ BasketballTournaments \ MainBranch \ packages \ Newtonsoft.Json.6.0.3 \ tools \ install.ps1'.

Error al inicializar el host de PowerShell. Si la configuración de la política de ejecución de PowerShell está establecida en AllSigned, abra la consola de Package Manager para inicializar el host primero.

Consola de administrador de paquetes

Error al intentar realizar la operación InitializeDefaultDrives en el proveedor 'FileSystem'.

Si espero a que finalice la inicialización en la consola, podría agregar algunos paquetes.

Mike Flynn
fuente
Hola Mike. Tengo exactamente el mismo problema. ¿Has logrado resolver el problema y tienes un administrador de paquetes nuget en funcionamiento?
Magnus Backeus
Tengo el mismo problema. Ya configuré la política de ejecución de Powershell para que no esté restringida, pero no ayuda. Instalo el paquete en Package Manager Console sin problema.
Adamy
55
Acabo de experimentar el mismo problema. Esta solución me ha ayudado: stackoverflow.com/questions/10457039/…
Oleksii Aza
1
Tuve el mismo error en Windows 10. Tuve que habilitar Powershell 2.0 desde los "programas y características"> "Activar o desactivar las características de Windows" y luego todo funcionó bien después de reiniciar Visual Studio.
twoleggedhorse

Respuestas:

193

Establecer una política de ejecución en RemoteSigned o Unrestricted debería funcionar. Debe cambiarse en modo administrador a través de una consola PowerShell. Tenga en cuenta que los cambios se aplicarán de acuerdo con la versión en bits de la consola PowerShell, por lo que 32 bits o 64 bits. Entonces, si desea instalar un paquete en Visual Studio (versión de 32 bits) que requiere una política específica, debe cambiar la configuración de la política a través de PowerShell (x86).

El comando en PowerShell (como administrador) para establecer la política sin restricciones (como lo señaló @Gabriel en los comentarios) es:

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

Una vez establecida la política sin restricciones, querrá volver a establecer la política en su original una vez que se complete la instalación.

jellonek
fuente
83
Trabajó para mi. Cuando cambia la ExecutionPolicy en PowerShell en sistemas de 64 bits, solo lo cambiará para la versión de 64 bits de PowerShell. Pero VS es un proceso de 32 bits y la "Package Manager Console" también es un proceso de 32 bits. Para solucionar esto, puede ejecutarlo start-job { Set-ExecutionPolicy Unrestricted } -RunAs32 | wait-job | Receive-Joben una consola PowerShell de 64 bits.
Gabriel
69
Necesita reiniciar Visual Studio después.
Danny Varod
Funciona bien. Es una pena que el paquete en sí sugiera una solución que no funciona. Y no olvide activar la política original después.
Mohoch
9
Cerró el VS 2013, ejecutó como administrador, comenzó a funcionar bien ... wiered
Rusty
9
Tuve este problema en VS2015 y simplemente actualizar el administrador de paquetes NuGet resolvió el problema
Shawson
55

Recuerde reiniciar Visual Studio después de haberlo hecho Set-ExecutionPolicy Unrestricteden PowerShell (x86).

Si eso no funciona, intente Set-ExecutionPolicy RemoteSigneden PowerShell (x86) y luego reinicie Visual Studio.

Sirar Salih
fuente
51

Por defecto, la ejecución del script de PowerShell es muy limitada por razones de seguridad. Para usar dentro de NuGet necesitamos abrir las puertas.

1. Paso

Abrir Windows PowerShell, correr comoAdministrator

2. Paso

NuGet está utilizando la consola de 32 bits, por lo que no se verá afectado por los cambios en la consola de 64 bits. Ejecute el siguiente script para asegurarse de que está configurando la consola de 32 bits.

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

3. Paso

Reiniciar Visual Studio

Michael Sander
fuente
¡Gracias! Solo cuando hice el comando de Windows PowerShell de la manera que dijiste, funcionó. ¡Muchas gracias!
Echiban
Esto funcionó para el siguiente entorno: Windows XP, Visual Studio 2010 Web Developer Express. Cerré el estudio visual. Descargado microsoft.com/en-us/download/confirmation.aspx?id=16818 Powershell. Powershell instalado. Ejecute powershell y ejecute start-job {Set-ExecutionPolicy RemoteSigned} -RunAs32 | esperar trabajo | Recibir trabajo. Comencé el estudio visual y usé nuget. Funcionó.
Desarrollador Marius Žilėnas
1
@muflix: no es posible en ese caso, al menos no sabría cómo. Al final es un problema de seguridad y, por lo tanto, se dejó a los administradores
Michael Sander,
¿Necesitamos cerrar las puertas después? ¿cómo?
Omid-RH
cerrarlo dejaría a Nuget inoperable ya que necesita ejecutar scripts durante la instalación de paquetes
Michael Sander
25

Tengo el mismo problema con el cuadro de diálogo Administrar paquetes NuGet, utilizo una solución que puede ayudar a otros, ejecutándose desde la consola del administrador de paquetes:

Si utilizo la línea de comando powershell commandlet install-package, todo está bien.

Soy adverso a cambiar una configuración de seguridad "solo para que funcione".

Alano
fuente
Deberías hacer una nueva pregunta.
Tay2510
3
No pensé que esto justificara una nueva pregunta ya que se relaciona directamente con el tema planteado. Reescribí la publicación para no parecer tanto una nueva pregunta sino las reflexiones de un desarrollador descontento.
Allan
@Allan El final de esta respuesta (post-edición) debe ser un comentario o una pregunta.
Danny Varod
Gracias por su aporte Danny, esperaba compartir mi experiencia y una posible solución para aquellas personas que no querían o no podían cambiar la configuración de seguridad. La respuesta se lee mejor ahora.
Allan
Get-Package -Filter PartOfPackageNamepara buscar a través del paquete instalado, Install-Package PackageName -Version 7.0.1para instalar una versión específica del paquete. No olvide seleccionar Proyecto predeterminado en la parte superior de la Consola del Administrador de paquetes
Lu55
24

Ninguna respuesta me ha funcionado.

Todas las políticas fueron correctas pero tengo el error al instalar un paquete

Error al inicializar el host de PowerShell. Si la configuración de la política de ejecución de PowerShell está establecida en AllSigned, abra la consola de Package Manager para inicializar el host primero.

La solución : desinstalé el complemento del administrador de paquetes nuget y lo reinstalé .

Soldados
fuente
44
Desinstalar y reinstalar fue lo único que realmente ayudó. Este problema también se describe aquí: github.com/NuGet/Home/issues/974
Zsolt
2
Reinstalé el paquete NuGet VSIX sin desinstalarlo primero, lo que resolvió el problema.
Dave
+1 marketplace.visualstudio.com/… para VS2015
hoang
16

Ejecutar Visual Studio como administrador funcionó para mí.

Sudhir
fuente
1
Lo mismo ocurre, aunque la gente debe recordar cerrar VS una vez que su paquete esté instalado, y volver a abrir bajo permisos regulares.
Liam Laverty
7

Tuve este problema con mi Visual Studio 2015. Desinstalé y reinstalé NuGet Package Manager nuevamente. Funcionó para mi.

Henry.K
fuente
¿Cómo? Se queja de que está siendo utilizado por otro proceso
Brandon
7

Actualicé el administrador de paquetes Nuget y eso me lo arregló.

DeclanMcD
fuente
6

Esto comenzó a suceder con 6.0.4 recientemente para mí, no creo que sea una muy buena solución, pero esto es lo que me ayudó. Cerrar Visual Studio

  1. Abra un indicador de Windows PowerShell como administrador (muy importante) y ejecute el siguiente comando: Set-ExecutionPolicy Bypass
  2. Abra Visual Studio, abra su solución y use Nuget para instalar JSON.Net (o cualquier paquete que lo incluya como dependencia).
  3. Una vez que todo esté funcionando, recomiendo volver a establecer la política de ejecución de powershell en restringida con el siguiente comando: Set-ExecutionPolicy Restricted
Goutam Singh
fuente
5

Tuve el mismo problema después de actualizar a Windows 10.

Esto funciono para mi

  1. Cerrar Visual Studio
  2. Ejecute Powershell como administrador
  3. correr Set-ExecutionPolicy Unrestricted
  4. Ejecute Visual Studio como administrador
  5. Limpia el proyecto y agrega el paquete nuget

Si aún no funciona, intente editar 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

Agregue lo siguiente

    <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
fuente
Agregar las dependencias de Powershell devenv.exe.configes la única solución que me funcionó tanto en VS2013 como en VS2015. VS2013: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\12.0VS2015: C:\Users\<username>\AppData\Local\Microsoft\VisualStudio\14.0Lo que no funcionó para mí fue cambiar la política de ejecución, cambiar la política de ejecución en el registro, reinstalar el administrador de paquetes, reparar Visual Studio, reiniciar Visual Studio, reiniciar Windows.
Rubanov
Wooooow Todos los otros métodos no me lo resolvieron en VS 2015. Solo fue útil agregar las dependencias a devenv.exe.config. Después de esto también encontré stackoverflow.com/questions/12638289/… . ¡¡¡Muchísimas gracias!!!
nharrer
4

De manera predeterminada, mi Windows 10 de 64 bits solo tenía Powershell versión 1.0 habilitada. Cambié el panel de control / Programas / Programas y características / Desactivar las características de Windows.

Asegúrese de que el motor de Windows Powershell 2.0 esté habilitado.

Reinicie VS2015 en modo no administrador y con todos los paquetes instalados correctamente.

DKrause
fuente
También tengo Windows 10 de 64 bits y necesitaba habilitar el motor de Windows Powershell 2.0 para que la consola Package Manager funcione. Es extraño que este problema haya existido durante algún tiempo y Microsoft no haya habilitado el motor Powershell 2.0 como parte del proceso de instalación de Visual Studio 2017.
JSWilson
4

Tuve el mismo problema con vs2013 y cambiar la política de ejecución no lo solucionó. La única solución que encontré fue desinstalar Nuget de VS e instalarlo nuevamente. Los pasos están aquí: https://stackoverflow.com/a/32619961/3853238

Doğa Benli
fuente
3

Todo lo que tenía que hacer era reiniciar Visual Studio, abrir NuGet Package Manager Consoley luego usar el Manage NuGet Packagescuadro de diálogo.

Sin nombre
fuente
3

Cierre todas las instancias de Visual Studio e intente nuevamente. Funcionó para mí :)

Mohini Mhetre
fuente
3

Si las respuestas anteriores no funcionan para usted:

  1. Ejecutar abierto - Windows + R
  2. Editor de registro abierto: escriba regedit.exe
  3. Abierto - HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ PowerShell
  4. En el panel derecho - Modifique "ExecutionPolicy" y mantenga sus "Datos de valor" en blanco.
  5. Reinicie su estudio visual, ahora su Powershell puede inicializarse correctamente.
Richie Rich
fuente
2

Después de probar varias soluciones sugeridas, finalmente se resolvió actualizando la extensión NuGet Package Manager en Visual Studio.

Esto se hace en Herramientas -> Extensiones y actualizaciones, luego en el cuadro de diálogo Extensiones y actualizaciones Actualizado -> Galería de Visual Studio. Es posible que sea necesario reiniciar Visual Studio.

Oskar Sjöberg
fuente
2

VS2015: se actualizó el NuGet y funcionó.

Gubi
fuente
Igual que aquí. Estaba usando VS2015 y acabo de actualizar Nuget Package Manager y funcionó.
iheartcsharp
2

Si nada de lo anterior ayuda, vea si puede actualizar Visual Studio.

Tuve el mismo problema con Visual Studio 2017 Community cuando intenté instalar Newtonsoft.Json. El ExecutionPolicycambio no ayudó (intenté usar PowerShell y el Editor del registro). También intenté desinstalar e instalar NuGet.

Después de ejecutar el archivo de instalación VS2017, solicitó la actualización de Visual Studio. Todos los problemas desaparecieron después de la actualización.

Tigran
fuente
1

Para mí, establecer la política de ejecución en Sin restricciones no funcionó. Tuve que reparar la instalación vs2013 yendo al Panel de control. Reparar la instalación funcionó para mí.

DanKodi
fuente
1

Tuve el mismo problema y esto lo resolvió para mí (Powershell como administrador):

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

después de probar toda la solución sugerida, nada funcionó en VS 2015 actualización 2

eliminar la carpeta del paquete de la carpeta de la solución y restaurarlo desde Visual Studio me funcionó

Nerdroid
fuente
1

Tuve un problema similar. Lo arreglé activando la función "Windows PowerShell 2.0" en "Activar o desactivar las características de Windows". Tenga en cuenta que esta función está activada de forma predeterminada, la apagué manualmente hace unos días.

Estoy trabajando en Windows 10 Pro de 64 bits y el mismo problema fue con Visual Studio 2015 y 2017 (aplicación de 32 bits y 64 bits)

Adnan Mulalic
fuente
0

Descargue e instale plantillas administrativas para 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.

ACTUALIZACIÓN - EDITAR:

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

Esto es lo que solucionó después de haberle dado a mi PowerShell más permisos sin saber que estropearía Visual Studio 2013 y 2015

Tom Stickel
fuente
0

Este problema no siempre está relacionado con la Política de ejecución de PowerShell. Mi máquina está configurada como "Sin restricciones" para PowerShell x64 y x86, pero sigo recibiendo este mensaje de error de vez en cuando en Visual Studio 2013.

Cuando intento abrir la consola del Administrador de paquetes:

Windows PowerShell actualizó su política de ejecución con éxito, pero la configuración se reemplaza por una política definida en un ámbito más específico. Debido a la anulación, su shell conservará su política de ejecución efectiva actual de Sin restricciones. Escriba "Get-ExecutionPolicy -List" para ver la configuración de su política de ejecución. Para obtener más información, consulte "Get-Help Set-ExecutionPolicy".

Este no es un mensaje de error válido.

Reiniciar Visual Studio no siempre resuelve el problema.

Ejecutar el proceso como administrador nunca resuelve el problema.

Al igual que Declan, la última actualización del complemento Package Manager solucionó el problema: 2.8.60723.765

Vilmir
fuente
0

Establezca la política de ejecución en Anular en lugar de Sin restricciones o Remota firmada; Este tutorial da instrucciones más completas . Además, si tiene problemas para usar PowerShell para cambiar la política, el autor le muestra cómo cambiarla en Regedit.

Charles Driver Jr.
fuente
Sin restricciones debería funcionar igual de bien: simplemente le advierte cuando puede estar haciendo algo inseguro, donde Bypass simplemente continuaría y ejecutaría el comando.
Auspex
0

Aquí hay muchas puñaladas en la oscuridad, así que agregaré las mías.

En mi caso, también recibí un mensaje de que faltaba un archivo de bloqueo y una recomendación para ejecutar dnu restoreen la consola del administrador de paquetes. Lo hice, reinicié VS y ahora todo funciona.

Auspex
fuente
0

Lo que funcionó para mí es:

  1. Establezca la Política de ejecución en Sin restricciones.
  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. En ISE, necesitas Enable-ScriptBrowser

Y tiene Módulo, Script y Analizador en su ISE.

Ejecutar en Win 10 Pro, x64 Console Host 5.0.10586.122

¡Buena suerte!

Dima
fuente