Azure DevOps - 捕获 dot.net 应用程序的错误日志
Azure DevOps - capture error log of dot.net application
我尝试在 buildpipeline 任务的日志中捕获 dot.net 应用程序的错误日志,用 vb/c# 编写。
buildpipeline 任务基本上是一个 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应用程序出了什么问题?
我写了一个简单的测试脚本。我发现上面的 Start-Process 命令将打开一个新的控制台 window 来执行 dot.net 应用程序。并在新控制台 window 中打印了错误日志。这可能就是powershell任务无法捕获错误日志的原因。
已通过在当前控制台 window.
中的 运行 dot.net 应用程序的上述 Start-Process 命令中添加标志 -NoNewWindow
来解决此问题
Start-Process -FilePath $Path -ArgumentList $argumentList -NoNewWindow -Wait
我尝试在 buildpipeline 任务的日志中捕获 dot.net 应用程序的错误日志,用 vb/c# 编写。
buildpipeline 任务基本上是一个 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应用程序出了什么问题?
我写了一个简单的测试脚本。我发现上面的 Start-Process 命令将打开一个新的控制台 window 来执行 dot.net 应用程序。并在新控制台 window 中打印了错误日志。这可能就是powershell任务无法捕获错误日志的原因。
已通过在当前控制台 window.
中的 运行 dot.net 应用程序的上述 Start-Process 命令中添加标志-NoNewWindow
来解决此问题
Start-Process -FilePath $Path -ArgumentList $argumentList -NoNewWindow -Wait