Я пытаюсь использовать расширение 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](https://i.stack.imgur.com/CEZva.png)