NuGet 程序包管理器控制台 (PMC) 策略设置

NuGet Package Manager Console (PMC) policy settings

在 VS2013 中,当我尝试打开 NuGet 包管理器控制台时,突然出现错误:

Windows PowerShell updated your execution policy successfully, but the setting is overridden by a policy defined at a more specific scope.
Due to the override, your shell will retain its current effective execution policy of Unrestricted. Type "Get-ExecutionPolicy -List" to view your execution policy settings. For more information please see "Get-Help Set- ExecutionPolicy".

如果我 运行 'Get-ExecutionPolicy -List' 在 PowerShell 提示符下,我得到以下信息:

Scope                 ExecutionPolicy
-----                 ---------------
MachinePolicy         Unrestricted
UserPolicy            Unrestricted
Process               Unrestricted
CurrentUser           RemoteSigned
LocalMachine          Undefined

不确定这是否正确,但在我同事的 PC 上,策略设置为:

Scope                 ExecutionPolicy
-----                 ---------------
MachinePolicy         Unrestricted
UserPolicy            Undefined
Process               Unrestricted
CurrentUser           RemoteSigned
LocalMachine          Undefined

猜测问题出在 'UserPolicy' 所以我尝试执行以下命令:

Set-ExecutionPolicy Undefined -Scope UserPolicy

这给了我错误信息:

Set-ExecutionPolicy : Cannot set execution policy. Execution policies at the MachinePolicy or UserPolicy scopes must be set through Group Policy.

不太确定现在该做什么。非常感谢任何解决此问题的帮助。

这似乎发生在加入域的工作站上,并且域的组策略包含特定的 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),根据这个 post:https://github.com/NuGet/Home/issues/974#issuecomment-124774650

这已经开始发生在与 Visual Studio 2015 RTM 一起发布的 NuGet 3.0.0.0 中。恢复到以前版本的 NuGet 将解决这个问题。

这也发生在我身上,使用域设置的 PowerShell 执行策略(MachinePolicy 不受限制)。 NuGet 版本为 2.8.60610.756。 Visual Studio 版本是 Visual Studio 2013 更新 4(12.0.31101.00;社区版)。症状是包管理器控制台是只读的,并带有@smolesen 问题中描述的错误消息,并且没有显示任何提示。

通过@pbar 提供的解决方法,我的安装现在也可以正常工作了。

这是 VS 2013 update 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

我尝试了上面描述的所有想法 none,其中的想法奏效了。

对我有用的是我的目录名中有一个无效字符

原目录名---> Entity Framework 4.1- Expert's Cookbook

新目录名---> Entity Framework4.1 Experts Cookbook

当我从目录名称中删除“-”字符和“'”字符时,问题就消失了

问题出在撇号字符上。