Visual Studio无法加载Entity Framework PowerShell脚本,因为其操作被软件限制策略阻止

时间:2019-02-11 18:32:16

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

在使用实体框架的项目中在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

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

这是我尝试过的事情:

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

  3. 我已经在程序包管理器控制台中本地尝试将“ Process”范围设置为“ Bypass”和“ Unrestricted”,然后手动加载Entity Framework 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正常工作?

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

2 个答案:

答案 0 :(得分:1)

由于Microsoft的无效证书,可能会发生错误。在“不受信任的发布者”选项卡上签入控制面板=> Internet选项=>内容=>证书。从该列表中删除Microsoft Corporation。

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

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

答案 1 :(得分:0)

尝试降级到EF 6.1.2。

我遇到了与您相同的问题。我尝试更改“组执行策略”,但由于对本地计算机的某些限制(可能由我的学校管理员设置),因此在我的情况下不起作用。在另一个项目中,我使用6.1.2进行了迁移等问题。