我正在安装一个巧克力包,它会抛出一个错误:
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
答案 0 :(得分:2)
你的意思是你想让错误代码冒出来作为Chocolatey的退出代码吗? POSH版本并不总是正确地从正在运行的软件包安装中捕获错误代码。
这已在新的C#版本中修复(截至2014年9月15日尚未完成)。
更新:Choco 0.9.9.x将以0/1退出。 Choco 0.9.10.x将以与包相同的退出代码退出。如果它是基础架构管理解决方案,这允许重新启动方案冒泡到调用进程。