无法设置执行策略以允许我在Visual Studio发布后事件中执行脚本

时间:2019-03-28 15:47:41

标签: visual-studio powershell visual-studio-2017

我正在尝试使用Powershell Extension for Visual Studio Enterprise 2017来构建脚本模块及其测试,并在Visual Studio生成项目时运行自己的自定义生成脚本。

我有一个Powershell脚本,该脚本将为我构建模块清单文件。我可以从CI系统或开发人员机器的提示符下轻松调用此脚本。我想将该脚本称为Post-build事件,以便我可以按自己的方式重建模块,因为我不想手动跟踪/更新某些清单属性。

因此,在我的项目属性中,添加了以下事件: & '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".

我现在不确定如何完成此任务。通过将powershell可执行文件作为构建事件运行,我已经能够从Visual Studio构建中运行PS脚本,然后我可以指定–ExecutionPolicy Bypass并运行任意命令或脚本文件。 Powershell项目: enter image description here

0 个答案:

没有答案