Я использую NuGet довольно долгое время на конкретном ПК. Теперь я создал новый проект в VS2010 (это проект MVC 4 Beta с использованием шаблона приложения Single page, если это имеет значение). Когда я выбираюПочему поведение ExecutionPolicy зависит от разных проектов в Visual Studio?
Tools/Library Package Manager/Package Manager Console
Откроется окно консоли, но отображает сообщение об ошибке:
File C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Extensions\Microsoft Corporation\NuGet Package Manager\1.7.30402.9028\Modules\NuGet\profile.ps1 cannot be loaded because the execution of scripts is disabled on this system. Please see "get-help about_signing" for more details.
Однако другие проекты могут еще открыть и использовать Диспетчер пакетов консоли.
В каждом случае VS2010 работает как один и тот же пользователь.
Если открыть командную строку (используя ту же учетную запись, под которой VS2010 запущен), запустите PowerShell, и введите команду
Get-ExecutionPolicy
PowerShell возвращает
Restricted
Мое понимание, основанные на Scott Hanselman blog - это то, что скрипты не должны запускаться вообще, если ExecutionPolicy ограничена.
Почему существующие проекты могут использовать консоль диспетчера пакетов, а новая - нет?
Обновление: Изменение ExecutionPolicy к AllSigned и перезапуск VS2010 решает непосредственную проблему, но мой главный вопрос, почему другие проекты смогли обойти установленную ExecutionPolicy. VS2010 - не работает под управлением администратора.
Консоль диспетчера пакетов NuGet устанавливает политику выполнения PowerShell для RemoteSigned, а область действия - «Процесс», поэтому она влияет только на Visual Studio. Изменение политики для Visual Studio не требует, чтобы Visual Studio запускалась как администратор. Не следует изменять политику выполнения, которую вы видите из командной строки. На моей машине установлено значение Ограничено. Однако ничто из этого не объясняет, почему ваш новый проект показывает эту ошибку, а существующие нет. –
Какой смысл устанавливать политику на машинке, если пользователь, не являющийся администратором, может изменить политику на основе каждого процесса? –
Параметры групповой политики могут помешать вам переопределить настройки текущего процесса, но настройки локального компьютера сами по себе не работают. См. Раздел приоритета политики выполнения в сообщении msdn - http://technet.microsoft.com/en-us/library/dd347641.aspx –