如何根据退出代码执行任意可执行文件和失败的 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 构建。