如何根据退出代码执行任意可执行文件和失败的 Cake 构建?
How to execute arbitrary executable and failed Cake build based on exit code?
如何在我的 Cake 构建脚本中 运行 任意可执行文件并检查该程序的退出代码?
如果它没有 return 给定的退出代码,那么我希望构建失败。
这是使用 int StartProcess(FilePath fileName) 别名实现的。
示例:
int pingLocalResult = StartProcess("ping", "-n 1 127.0.0.1");
if (pingLocalResult != 0)
{
throw new Exception("Ping 127.0.0.1 failed.");
}
int pingZeroResult = StartProcess("ping", "-n 1 0");
if (pingZeroResult != 0)
{
throw new Exception("Ping 0 failed.");
}
将输出如下内容:
C:\> cake .\startprocess.cake
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Pinging 0.0.0.0 with 32 bytes of data:
PING: transmit failed. General failure.
Ping statistics for 0.0.0.0:
Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
Error: Ping 0 failed.
C:\>
其中 throw new Exception("Ping 0 failed.");
将 break/abort 构建。
如何在我的 Cake 构建脚本中 运行 任意可执行文件并检查该程序的退出代码? 如果它没有 return 给定的退出代码,那么我希望构建失败。
这是使用 int StartProcess(FilePath fileName) 别名实现的。
示例:
int pingLocalResult = StartProcess("ping", "-n 1 127.0.0.1");
if (pingLocalResult != 0)
{
throw new Exception("Ping 127.0.0.1 failed.");
}
int pingZeroResult = StartProcess("ping", "-n 1 0");
if (pingZeroResult != 0)
{
throw new Exception("Ping 0 failed.");
}
将输出如下内容:
C:\> cake .\startprocess.cake
Pinging 127.0.0.1 with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
Ping statistics for 127.0.0.1:
Packets: Sent = 1, Received = 1, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
Pinging 0.0.0.0 with 32 bytes of data:
PING: transmit failed. General failure.
Ping statistics for 0.0.0.0:
Packets: Sent = 1, Received = 0, Lost = 1 (100% loss),
Error: Ping 0 failed.
C:\>
其中 throw new Exception("Ping 0 failed.");
将 break/abort 构建。