Параметры политики консоли диспетчера пакетов NuGet (PMC)
В VS2013, когда я пытаюсь открыть консоль диспетчера пакетов NuGet, я внезапно получаю ошибку:
Windows PowerShell успешно обновил политику выполнения, но параметр переопределяется политикой, определенной в более конкретной области.
Из-за переопределения ваша оболочка сохранит текущее эффективное выполнение политика неограниченная. Введите "Get-ExecutionPolicy-List" для просмотра параметры политики выполнения. За дополнительной информацией см. раздел "Get-Help Set- Параметра ExecutionPolicy".
Если я запускаю "Get-ExecutionPolicy-List" в командной строке PowerShell, я получаю следующее:
Scope ExecutionPolicy
----- ---------------
MachinePolicy Unrestricted
UserPolicy Unrestricted
Process Unrestricted
CurrentUser RemoteSigned
LocalMachine Undefined
не уверен, что это правильно или нет, но на моем рабочем ПК политики установлены на:
Scope ExecutionPolicy
----- ---------------
MachinePolicy Unrestricted
UserPolicy Undefined
Process Unrestricted
CurrentUser RemoteSigned
LocalMachine Undefined
думаю, проблема в UserPolicy поэтому я попытался выполнить следующую команду:
Set-ExecutionPolicy Undefined -Scope UserPolicy
что дает мне сообщение об ошибке:
Набор-Параметра ExecutionPolicy : Невозможно задать политику выполнения. Политики выполнения в областях MachinePolicy или UserPolicy должны быть установить с помощью групповой политики.
не совсем уверен, что делать сейчас. Любая помощь в устранении этой проблемы была бы весьма признательна.
5 ответов
это происходит на рабочей станции, которая присоединена к домену, и где групповая политика домена включает определенный параметр PowerShell ExecutionPolicy.
на данный момент см. параметры, приведенные здесь: https://powershellpanda.wordpress.com/2013/12/01/override-gpo-for-powershell-execution-policy/
лично я использую временное решение. Временное удаление политики выполнения, которая была удалена из моего домена. (Он вернется конечно, но, по крайней мере, я могу продолжать работать, пока не будет найдено более постоянное решение.) Вот скрипт regedit, который я использую:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\PowerShell]
"ExecutionPolicy"=-
см. также:https://github.com/NuGet/Home/issues/974#issuecomment-123410075
обновление
Я думаю, что это только начало быть проблемой с Visual Studio 2013 обновление 5, опубликованном вчера. Кстати, это влияет и на Visual Studio 2015 (RTM).
обновление 2
теперь доступно правильное исправление nuget (для VS2013 и VS2015), в этом сообщении:https://github.com/NuGet/Home/issues/974#issuecomment-124774650
Это произошло и со мной, с политикой выполнения PowerShell для домена (неограниченной для MachinePolicy). Версия NuGet-2.8.60610.756. Версия Visual Studio-Visual Studio 2013 с обновлением 4 (12.0.31101.00; Community Edition). Симптом заключается в том, что консоль диспетчера пакетов доступна только для чтения с сообщением об ошибке, описанным в вопросе @smolesen, и приглашение не отображается.
с обходным путем, предоставленным @pbar, моя установка также отлично работает.
Это начало происходить в NuGet 3.0.0.0, который был выпущен с Visual Studio 2015 RTM. Возвращаясь к предыдущей версии NuGet избавится от проблемы.
это проблема с обновлением VS 2013 5. Обходной путь, который работает для меня, - выполнить эту команду в powershell и перезапустить VS.
Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value ByPass
Я установил исправление для обновления инструментов Nuget, и оно сработало.
https://github.com/NuGet/Home/releases/download/2.8.7/NuGet.Tools.vsix
Я пробовал все идеи, описанные выше, ни одна из них не работала.
Что сработало для меня, так это то, что у меня был недопустимый символ в моем имени каталога
исходное имя каталога - - - > Entity Framework 4.1-Поваренная книга эксперта
новое имя каталога - - - > Entity Framework 4.1 эксперты Поваренная книга
когда я удалил символ " - "и символ "'" из имени каталога, проблема исчезла
проблема с символ Апострофа.