Сценарий PowerShell Entity Framework не может быть загружен Visual Studio, поскольку его работа заблокирована политиками ограниченного использования программ

Когда я загружаю Консоль диспетчера пакетов в Visual Studio 2017 v15.9.6 в проекте, который использует Entity Framework, я получаю следующую ошибку:

\ 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". Параметр для обеих конфигураций имеет "Политику выполнения", установленную на "Разрешить все сценарии". снимок экрана настройки выполнения скрипта

  3. Я попытался локально в консоли диспетчера пакетов установить для области "Процесс" значение "Обход" и "Неограниченный", а затем вручную загрузить сценарий 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 работал должным образом?

Еще немного информации о том, что это компьютер, присоединенный к домену компании, но ни у одного разработчика нет этой проблемы. Не существует групповой политики, установленной администратором, которая мешает мне запускать сценарии.

3 ответа

Ошибка может возникать из-за недействительного сертификата от Microsoft. Проверьте Панель управления => Свойства обозревателя => Содержимое => Сертификаты на вкладке Недоверенные издатели. Удалите Microsoft Corporation из этого списка.

Звучит странно, но у меня это сработало.

Ткс https://github.com/NuGet/Home/issues/7158

Удалить файл внутри

control => интернет-вариант => контент => сертификаты => ненадежные издатели

тогда проблема решится

Попробуйте понизить до EF 6.1.2.

Я столкнулся с той же проблемой, что и вы. Я попытался изменить Политику выполнения группы, которая в моем случае не работала из-за некоторых ограничений на моем локальном компьютере (может быть установлено администратором моей школы). В другом проекте я использовал 6.1.2, где такие вещи, как миграция, не были проблемой.