Невозможно установить политику выполнения, чтобы разрешить мне выполнять сценарий в событии пост-сборки Visual Studio - PullRequest
1 голос
/ 28 марта 2019

Я пытаюсь использовать расширение Powershell для Visual Studio Enterprise 2017 для структурирования моих модулей сценариев и их тестов, а также запускаю собственный сценарий сборки, когда Visual Studio создает проект.

У меня есть сценарий powershell, который я написал и который создаст для меня файлы манифеста модуля. Я могу очень легко вызвать этот скрипт из моей системы CI или из подсказки моей машины разработчика. Я хочу назвать этот сценарий событием после сборки, чтобы я мог перестроить модуль так, как я хочу, потому что я не хочу вручную отслеживать / обновлять некоторые свойства манифеста.

Итак, в свойствах моего проекта я добавляю событие со следующим: & 'C:\Path\To\My\Modules\Build-ALLModules.ps1' -moduleName 'MyModule.psm1'

Моя сборка успешна, но в журнале вывода я получаю:

File C:\Path\To\My\Modules\Build-ALLModules.ps1 cannot be loaded because running scripts is disabled on this system.

Я прочитал about_Execution_Policies раньше, поэтому я пытаюсь установить политику выполнения на шаге события после сборки непосредственно перед запуском сценария:

Set-ExecutionPolicy Unrestricted -Force; & 'C:\Path\To\My\Modules\Build-ALLModules.ps1' -moduleName 'MyModule.psm1'

, которая завершается с серьезной ошибкой, которая мешает сборке:

"Set-ExecutionPolicy Unrestricted; & 'C:\Path\To\My\Modules\Build-ALLModules.ps1' -moduleName 'MyModule.psm1'" is an invalid value for the "Command" parameter of the "RunPowerShellCommand" task. Multiple items cannot be passed into a parameter of type "Microsoft.Build.Framework.ITaskItem".

Я не совсем уверен, как это сделать сейчас. Мне удалось запустить сценарии PS из сборки Visual Studio, запустив исполняемый файл powershell в качестве события сборки, а затем я могу указать –ExecutionPolicy Bypass и выполнить произвольную команду или файл сценария. Powershell Project: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...