Visual Studio:在后台运行后期构建事件

时间:2016-04-19 10:49:38

标签: visual-studio powershell batch-file build build-process

我有一个PowerShell脚本,我希望在Visual Studio中触发构建后事件时运行该脚本。但是,脚本在后台运行并且在运行时不会暂停构建过程非常重要。另一个要求是我必须能够使用目录名中的空格传入项目目录。

我一直无法让两者同时发生。经过多次反复试验,我发现了一个在后台运行powershell脚本的复杂解决方案,但它并不适用于目录名中的空格。这是我目前正在做的事情,但我对完全不同的事情持开放态度,因为这看起来过于复杂:

在Visual Studio中的后期构建事件中:

powershell -ExecutionPolicy Unrestricted start-process " $(ProjectDir)scripts\post-build.cmd" -ArgumentList $(TargetDir),$(ConfigurationName),$(ProjectDir)

这是post-build.cmd:

START /B CMD /C CALL "Powershell.exe" -ExecutionPolicy Unrestricted -file %3scripts\post-build.ps1 %1 %2 %3

我试过在参数附近添加引号,但是当我这样做时,我一直在从Powershell中得到各种错误(即缺少终结符'"')。

请原谅我的无知,我是Powershell和Visual Studio的新手。

1 个答案:

答案 0 :(得分:0)

您可以在post build事件中直接运行Powershell脚本 。例如,我已经完成了在构建完成后对可执行文件进行数字签名。这是我在帖子构建步骤中使用的命令行:

powershell.exe -file "$(SolutionDir)sign.ps1" "$(TargetPath)" "..\..\installs\certs\DigitalSignature.pfx"

请注意,无需使用批处理文件。