我正在使用运行命令提供程序作为后同步步骤运行 msdeploy(在 powershell 中,作为脚本的一部分),它在远程计算机上运行批处理文件。批处理文件只是执行exit /b 1
,这会导致它返回失败代码。
我正在使用 msdeploy v3,并已将 successReturnCodes=0 指定为提供程序参数。
我可以看到批处理文件正在执行,我可以看到 msdeploy 认识到这是一个错误,并记录了以下事实:
Performing '-postSync'...
Info: Using ID '892ee111-27c1-458d-888d-ead28fcab742' for connections to the remote server.
Info: Using ID '49ee88fc-0e1d-4eff-8a75-bccf0e7d680a' for connections to the remote server.
Info: Updating runCommand (d:\testdeploy\test\test.bat).
Info:
Info: C:\Windows\system32>exit /b 1
Error: (13/06/2013 6:06:03 PM) An error occurred when the request was processed on the remote computer.
Error: The process 'C:\Windows\system32\cmd.exe' (command line '') exited with code '0x1'.
Error count: 1.
Error during '-postSync'.
Total changes: 1 (0 added, 0 deleted, 1 updated, 0 parameters changed, 6 bytes copied)
D:\TestDeploy> $LASTEXITCODE
0
但是,msdeploy 成功返回,$LASTEXITCODE 为 0。
有什么方法可以告诉 msdeploy 实际上已经发现了一个错误?(不诉诸于捕获 msdeploy 的输出并检查是否存在“错误计数:”?:)