能否在csproj中让一个PostBuildEvent执行完成后再执行另一个?
如何让PostBuildEvent按顺序执行(先完成一个再执行另一个)
完全可以实现PostBuildEvent的顺序执行,默认情况下,后期生成事件的命令就是按书写顺序依次执行的,前一个命令执行完成后才会启动下一个。以下是具体的实现方式和注意事项:
基础顺序执行
在项目属性的「生成事件」→「后期生成事件命令行」中,将需要先执行的命令放在前面,后执行的命令放在后面,命令之间可以用换行或符号分隔:- 使用
&:无论前一个命令成功与否,都会执行下一个命令 - 使用
&&:仅当前一个命令执行成功(返回码为0)时,才会执行下一个命令
示例(执行两个批处理脚本,成功后再执行第二个):
call "$(SolutionDir)Scripts\FirstPostBuild.bat" && call "$(SolutionDir)Scripts\SecondPostBuild.bat"或者换行书写(效果相同):
call "$(SolutionDir)Scripts\FirstPostBuild.bat" call "$(SolutionDir)Scripts\SecondPostBuild.bat"注意:执行批处理文件时必须加
call,否则会直接跳出当前后期生成的批处理环境,后续命令无法执行。- 使用
非批处理程序的顺序执行
如果是执行EXE或其他可执行程序,直接写路径即可,无需call:"$(TargetDir)FirstTool.exe" && "$(TargetDir)SecondTool.exe"自定义执行逻辑
可以通过判断前一个命令的返回码来控制后续步骤,比如:"$(TargetDir)FirstTool.exe" if %ERRORLEVEL% equ 0 ( echo First tool succeeded, running second tool... "$(TargetDir)SecondTool.exe" ) else ( echo First tool failed, aborting post-build steps exit /b 1 )
内容的提问来源于stack exchange,提问作者Jonyboylovespie
相关产品推荐
相关产品推荐

