1

我正在安装一个巧克力包,它会引发错误:

Write-Error : [ERROR] Running C:\Users\username\AppData\Local\Temp\chocolatey\javaruntime\javaruntimeInstall.exe with /s REBOOT=Suppress  was not successful. Exit code was '1603'.
At C:\ProgramData\chocolatey\chocolateyinstall\helpers\functions\Start-ChocolateyProcessAsAdmin.ps1:46 char:5
+     Write-Error $errorMessage
+     ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Write-Error

Write-Error : javaruntime did not finish successfully. Boo to the chocolatey gods!
-----------------------

错误显示在控制台中,但我找不到跟踪它的方法。之后的退出代码cinst javaruntime -force为 0,并且包被移动到C:\ProgramData\chocolatey\lib-bad. 我已经尝试使用 try-catch 捕获错误,但cinst只是跳过它并在 try-catch 块之后执行。

有什么方法可以跟踪此类错误吗?

更新澄清:我的问题是,即使出现错误并且包被移动到 lib-bad,巧克力也会以代码 0 退出。

感谢您的帮助:D

4

1 回答 1

2

您的意思是您希望错误代码作为 Chocolatey 的退出代码冒泡吗?POSH 版本并不总是从运行包安装中正确捕获错误代码。

这已在新的 C# 版本中得到修复(截至 2014 年 9 月 15 日尚未发布)。

更新: Choco 0.9.9.x 将以 0/1 退出。Choco 0.9.10.x 将以与包相同的退出代码退出。如果它是一个基础设施管理解决方案,这允许重新启动场景冒泡到调用进程。

于 2014-09-15T23:30:26.227 回答