【问题标题】:Entity Framework PowerShell script cannot be loaded by Visual Studio because its operation is blocked by software restriction policiesVisual Studio 无法加载实体框架 PowerShell 脚本,因为它的操作被软件限制策略阻止
【发布时间】:2019-02-11 18:32:15
【问题描述】:

当我在使用 Entity Framework 的项目中的 Visual Studio 2017 v15.9.6 中加载包管理器控制台时,我收到以下错误:

\packages\EntityFramework.6.2.0\tools\init.ps1 无法加载,因为它的操作被软件限制阻止 策略,例如使用组策略创建的策略。 在行:1 字符:45 + ... rgs+=$_}; & 'C:\Bitbucket\project-path\packages\EntityFramework.6.2. ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~ + CategoryInfo : SecurityError: (:) [], PSSecurityException + FullyQualifiedErrorId : UnauthorizedAccess

这使我无法运行特定于实体框架的命令,例如“更新数据库”或“添加迁移”。

以下是我尝试过的方法:

  1. 重新安装 Visual Studio
  2. 在组策略编辑器中,对于计算机配置和用户配置,我已启用位于“管理模板\Windows 组件\Windows PowerShell”中的“打开脚本执行”设置。两种配置的设置都将“执行策略”设置为“允许所有脚本”。

  3. 我已尝试在包管理器控制台中本地将“进程”范围设置为“绕过”和“不受限制”,然后手动加载实体框架 init.ps1 脚本。我收到同样的错误。

  4. 我还尝试修改 PowerShell 的注册表项,在一些地方将 ExecutionPolicy 设置为“无限制”。这些地方在:
    • HKLM\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell
    • HKLM\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.SqlServer.Management.PowerShell.sqlps120
    • HKLM\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.SqlServer.Management.PowerShell.sqlps140
  5. 在执行上述所有操作之间,我已多次重新启动。

当我运行命令“Get-ExecutionPolicy -List”时,这是我的结果”

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

完成上述所有操作后,我希望能够正常加载 Visual Studio,启动包管理器控制台,并且在尝试运行 Entity Framework init.ps1 脚本时不会收到任何错误。我一定是错过了什么或做错了什么。我需要做什么才能让 Visual Studio 按预期工作?

更多信息是这是一台加入公司域的计算机,但没有其他开发人员遇到此问题。管理员没有设置组策略来阻止我运行脚本。

【问题讨论】:

  • 尝试将您的政策更改为 Bypass 而不是 Unrestricted
  • 我已将CurrentUserLocalMachine 的策略设置为BypassUserPolicy 仍然设置为Unrestricted,因为它只能通过组策略编辑器设置,并且Bypass 没有选项。我仍然有同样的问题。

标签: entity-framework powershell visual-studio-2017 executionpolicy package-manager-console


【解决方案1】:

错误可能是由于 Microsoft 的证书无效。检查控制面板 => Internet 选项 => 内容 => 不受信任的发布者选项卡上的证书。从此列表中删除 Microsoft Corporation。

听起来很奇怪,但对我有用。

谢谢https://github.com/NuGet/Home/issues/7158

【讨论】:

  • 哇。就是这样。非常感谢。
【解决方案2】:

尝试降级到 EF 6.1.2。

我遇到了和你一样的问题。我尝试更改在我的情况下不起作用的组执行策略,因为我的本地计算机上有一些限制(可能由我的学校管理员设置)。在另一个项目中,我使用了 6.1.2,其中迁移之类的事情都没有问题。

【讨论】:

  • 你也可以降级到6.1.3,降级到次要版本1
【解决方案3】:

删除里面的文件

控制=>互联网选项 => 内容 => 证书 =>不受信任的发布者

问题就解决了

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-17
    • 1970-01-01
    • 2018-12-10
    • 2020-10-08
    • 1970-01-01
    • 2017-10-21
    • 1970-01-01
    相关资源
    最近更新 更多