4

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

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

这使我无法运行特定于实体框架的命令,例如“Update-Database”或“Add-Migration”。

以下是我尝试过的事情:

  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,启动包管理器控制台,并且在尝试运行实体框架 init.ps1 脚本时不会收到任何错误。我一定是错过了什么或做错了什么。我需要做什么才能让 Visual Studio 按预期工作?

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

4

3 回答 3

9

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

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

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

于 2019-09-02T13:32:04.380 回答
0

尝试降级到 EF 6.1.2。

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

于 2019-04-11T15:25:35.067 回答
0

删除里面的文件

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

那么问题就会解决

于 2021-08-28T05:00:42.313 回答