【问题标题】:NuGet Package Manager Console (PMC) policy settingsNuGet 包管理器控制台 (PMC) 策略设置
【发布时间】:2015-10-10 18:04:42
【问题描述】:

在VS2013中,当我尝试打开NuGet Package Manager Console时,突然报错:

Windows PowerShell 成功更新了您的执行策略, 但该设置被在更具体范围内定义的策略覆盖。
由于覆盖,您的 shell 将保留其当前有效执行 不受限制的政策。键入“Get-ExecutionPolicy -List”查看您的 执行策略设置。更多信息请参见“Get-Help Set- 执行策略”。

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

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

这给了我错误信息:

Set-ExecutionPolicy:无法设置执行策略。 MachinePolicy 或 UserPolicy 范围内的执行策略必须是 通过组策略设置。

不太确定现在该做什么。任何解决此问题的帮助将不胜感激。

【问题讨论】:

标签: visual-studio-2013 nuget policy


【解决方案1】:

这似乎发生在已加入域的工作站上,并且该域的组策略包含特定的 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 update 5 的问题。 顺便说一下,它也会影响 Visual Studio 2015 (RTM)。

更新 2

现在可以使用适当的 nuget 修复(适用于 VS2013 和 VS2015),根据这篇文章:https://github.com/NuGet/Home/issues/974#issuecomment-124774650

【讨论】:

  • 此处快速说明:如果您的域在用户和计算机组策略中设置了执行策略(这里的查询者似乎就是这种情况),您需要删除相同的密钥来自 HKCU:以及/而不是 HKLM:
  • 另外注意,在此注册表编辑后似乎需要重新启动才能使更改生效。
  • 我点击了更新 2 中的链接,它解决了我在 VS 2015 中的问题
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        【解决方案5】:

        我尝试了上面描述的所有想法,但都没有奏效。

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

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

        新目录名称--->Entity Framework 4.1 Experts Cookbook

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

        问题在于撇号字符。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-01-08
          • 2015-11-18
          • 2012-12-19
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-07
          相关资源
          最近更新 更多