Не удается установить пакет nuget из-за "Не удалось инициализировать хост PowerShell"

Внезапно я получаю эту ошибку при обновлении пакетов Nuget. Ни одно из исправлений, с которыми я сталкивался в работе. Я использую Visual Studio 2013.

'Newtonsoft.Json 6.0.3' уже установлен.

Добавление "Newtonsoft.Json 6.0.3" в Турниры. Уведомления.

Успешно добавлено "Newtonsoft.Json 6.0.3" в Турниры. Уведомления.

Выполнение файла сценария 'F:\My Webs\BasketballTournaments\MainBranch\packages\Newtonsoft.Json.6.0.3\tools\install.ps1'.

Не удалось инициализировать хост PowerShell. Если для параметра политики выполнения PowerShell установлено значение AllSigned, откройте Консоль диспетчера пакетов, чтобы сначала инициализировать хост.

Консоль диспетчера пакетов

Попытка выполнить операцию InitializeDefaultDrives на поставщике FileSystem не удалась.

Если я дождусь завершения инициализации в консоли, я смог добавить несколько пакетов.

Ответ 1

Настройка политики выполнения для RemoteSigned или Unrestricted должна работать. Он должен быть изменен в режиме администратора с помощью консоли PowerShell. Имейте в виду, что изменения будут применяться в соответствии с битовой версией консоли PowerShell, поэтому 32 бит или 64 бит. Поэтому, если вы хотите установить пакет в Visual Studio (32-разрядная версия), для которого требуется определенная политика, вы должны изменить настройки политики через PowerShell (x86).

Команда в PowerShell (как администратор), чтобы установить политику неограниченно (как отмечено в комментариях @Gabriel):

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

Установив политику неограниченно, вам нужно будет вернуть политику к исходному состоянию после завершения установки.

Ответ 2

Не забудьте перезапустить Visual Studio после того, как вы сделали Set-ExecutionPolicy Unrestricted в PowerShell (x86).

Если это не сработает, попробуйте Set-ExecutionPolicy RemoteSigned в PowerShell (x86), а затем перезапустите Visual Studio.

Ответ 3

По умолчанию выполнение PowerShell script очень ограничено по соображениям безопасности. Для использования в NuGet нам нужно открывать двери.

1. Шаг

Откройте Windows PowerShell, запустите его как Administrator

2. Шаг

NuGet использует 32-битную консоль, поэтому на нее не влияют изменения в 64-битной консоли. Запустите следующий script, чтобы убедиться, что вы настраиваете 32-битную консоль.

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

3. Шаг

Перезагрузка Visual Studio

Ответ 4

У меня такая же проблема с диалоговым окном "Управление пакетами NuGet", я использую обход, который может помочь другим - запуск из консоли диспетчера пакетов:

Если я использую командную строку powershell commandlet install-package, все в порядке.

Я не могу изменить настройку безопасности "просто для того, чтобы заставить ее работать".

Ответ 5

Никакие ответы не работали для меня.

Все политики были правильными, но у меня есть ошибка при установке пакета

Не удалось инициализировать хост PowerShell. Если выполнение PowerShell для параметра политики установлено значение AllSigned, откройте консоль диспетчера пакетов сначала инициализировать хост.

решение: у меня удален плагин nuget package manager и переустановлен.

Ответ 6

Запуск Visual Studio в качестве администратора работал у меня.

Ответ 7

Я обновил менеджер пакетов Nuget и исправил его для меня.

Ответ 8

У меня была эта проблема с моей Visual Studio 2015. Я удалил и снова установил диспетчер пакетов NuGet. Это сработало для меня.

Ответ 9

Это началось с версии 6.0.4 в последнее время для меня, я не думаю, что это очень хорошее решение, но вот что мне помогло. Закрыть Visual Studio

  • Откройте приглашение Windows PowerShell под именем "Администратор" (очень важно) и выполните следующую команду: "Обрезать-ExecutionPolicy Bypass"
  • Откройте Visual Studio, откройте свое решение и используйте Nuget для установки JSON.Net(или любой другой пакет включил его как зависимость).
  • Как только все будет работать, я рекомендую снова установить политику выполнения powershell, используя следующую команду: Set-ExecutionPolicy Restricted

Ответ 10

У меня была такая же проблема после обновления до Windows 10.

Это сработало для меня

  • Закрыть Visual Studio
  • Запустить Powershell как admin
  • Выполнить Set-ExecutionPolicy Unrestricted
  • Запустить Visual Studio как admin
  • Очистите проект и добавьте пакет nuget

Если он все еще не работает, попробуйте отредактировать 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

Добавьте следующий

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

Ответ 12

По умолчанию мой 64-разрядный Windows 10 имел только версию Powershell версии 1.0. Я изменил панель управления/Программы/Программы и функции/Включил функции Windows Вкл.

Убедитесь, что включен движок Windows Powershell 2.0.

Перезапустите VS2015 в режиме без администратора и со всеми установленными пакетами.

Ответ 13

У меня была такая же проблема с vs2013, и изменение политики выполнения не исправить. Единственным рабочим решением, которое я нашел, было удаление Nuget из VS и его установка снова. Шаги здесь: fooobar.com/questions/38262/...

Ответ 14

Все, что мне нужно было сделать, это перезапустить Visual Studio, открыть NuGet Package Manager Console, а затем с помощью диалога Manage NuGet Packages.

Ответ 15

Закройте все экземпляры визуальной студии и повторите попытку. Это сработало для меня:)

Ответ 16

После выполнения различных предложенных исправлений он был окончательно решен путем обновления расширения NuGet Package Manager в Visual Studio.

Это делается в разделе "Инструменты → Расширения и обновления", затем в диалоговом окне "Расширения и обновления". Обновлено → Галерея Visual Studio. Может потребоваться перезапуск Visual Studio.

Ответ 18

VS2015: Обновлен NuGet и работал.

Ответ 20

Если ни одно из указанных выше не помогает, посмотрите, можете ли вы обновить Visual Studio.

У меня была такая же проблема с сообществом Visual Studio 2017, когда я пытался установить Newtonsoft.Json. Изменение ExecutionPolicy не помогло (я попытался использовать как PowerShell, так и редактор реестра). Я также попытался удалить и установить NuGet.

После запуска файла установки VS2017 он попросил обновить Visual Studio. Все проблемы исчезли после обновления.

Ответ 21

Если приведенные выше ответы работают на вас -

  • Открыть Run - windows + R
  • Открыть редактор реестра - введите regedit.exe
  • Открыть - HKEY_LOCAL_MACHINE\SOFTWARE\Политики\Microsoft\Windows\PowerShell
  • В правой панели - измените "ExecutionPolicy" и сохраните "данные о ценности" как незаполненные.
  • Перезапустите свою визуальную студию, теперь ваша Powershell может правильно инициализироваться.

Ответ 22

Для меня настройка политики выполнения на Unrestricted не работает. Мне пришлось восстановить установку vs2013, перейдя в Панель управления. Ремонт установки работал у меня.

Ответ 23

Была та же проблема, и это разрешило это для меня (Powershell as admin):

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

Ответ 24

У меня была аналогичная проблема. Я исправил это, включив функцию "Windows PowerShell 2.0" в "Включить или отключить функции Windows". Обратите внимание, что эта функция включена по умолчанию, я вручную отключил ее несколько дней назад.

Я работаю над Windows 10 Pro 64bit, и такая же проблема была с Visual Studio 2015 и 2017 (32-битное и 64-битное приложение)

Ответ 25

Загрузить и установить Административные шаблоны для 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.

UPDATE - EDIT:

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

Это то, что было исправлено после того, как я предоставил свои полномочия больше разрешений, не зная, что это испортит визуальную студию 2013 и 2015

Ответ 26

Эта проблема не всегда связана с политикой исполнения PowerShell. Моя машина настроена как "Неограниченная" для PowerShell x64 и x86, но я все еще получаю это сообщение об ошибке от времени до времени в Visual Studio 2013.

Когда я пытаюсь открыть консоль диспетчера пакетов:

Windows PowerShell успешно обновила вашу политику выполнения, но параметр переопределяется политикой, определенной в более конкретной области. Из-за переопределения ваша оболочка сохранит текущую эффективность политика выполнения без ограничений. Введите "Get-ExecutionPolicy -List" в просмотрите параметры политики выполнения. Для получения дополнительной информации см. "Get-Help Set-ExecutionPolicy".

Это неверное сообщение об ошибке.

Перезагрузка Visual Studio не всегда разрешает проблему.

Запуск процесса в качестве администратора никогда не решает проблему.

Подобно Declan, последнее обновление плагина Package Manager исправило проблему: 2.8.60723.765

Ответ 27

Установите политику выполнения для обхода вместо Unrestricted или RemoteSigned; этот учебник дает более полные инструкции. Кроме того, если у вас возникли проблемы с использованием PowerShell для изменения политики, то автор покажет вам, как изменить ее в Regedit.

Ответ 28

Здесь очень много ударов в темноте, поэтому я добавлю свои собственные.

В моем случае у меня также появилось сообщение о том, что отсутствовал файл блокировки и рекомендация запустить dnu restore в консоли диспетчера пакетов. Я сделал это, перезапустил VS, и теперь все работает.

Ответ 29

после попытки всего предлагаемого решения ничего не работало в обновлении VS 2015 2

удаление папки пакета из папки решения и восстановление его из visual studio работало для меня

Ответ 30

Что для меня работало:

  • Установите политику выполнения для неограниченного.
  • Find-Module ISEModuleBrowserAddon | Install-Module
  • Import-Module ISEModuleBrowserAddon
  • Find-Module ISEScriptAnalyzerAddOn | Install-Module
  • Import-Module ISEScriptAnalyzerAddOn
  • Import-Module ScriptBrowser
  • В ISE вам нужно Enable-ScriptBrowser

И у вас есть модуль, Script и Analyzer в вашей ISE.

Запуск в Win 10 Pro, хост консоли x64 5.0.10586.122

Удачи!