我试图在构建管道任务的日志中捕获用vb/c#编写的dot.net应用程序的错误日志。
构建管道任务基本上是一个powershell脚本,它调用dot.net应用程序的可执行性。
...
Start-Process -FilePath $Path -ArgumentList $argumentList -Wait
...
为了允许在网络机器上执行dot.net应用程序,我将此命令放入脚本块中并打开一个PSSession。(也许,这会有所不同?(
Invoke-Command $Block -Session $session -ArgumentList $argumentList
在dot.net应用程序中,我打印错误,如
Console.Error.WriteLine($"+++++ {Message}:")
但是管道日志保持为空。我没有用其他工具,如git.exe或其他东西来进行此扩展。
那么,dot.net应用程序出了什么问题
我写了一个简单的测试脚本。我发现上面的启动进程命令会打开一个新的控制台窗口来执行dot.net应用程序。错误日志已打印在新控制台窗口中。这可能就是powershell任务无法捕获错误日志的原因。
通过在上面的"启动进程"命令中添加标志-NoNewWindow
以在当前控制台窗口中运行dot.net应用程序,解决了此问题。
Start-Process -FilePath $Path -ArgumentList $argumentList -NoNewWindow -Wait