You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为指定Chocolatey包禁用自动卸载程序并解决卸载输出异常?

问题解决:Chocolatey包卸载的两个问题处理

问题1:卸载输出出现"0"

这个"0"是Uninstall-ChocolateyPackage命令返回的成功退出码,PowerShell默认会将未捕获的命令返回值打印到控制台。解决方法是把命令返回值赋值给$null,避免多余输出:

修改后的chocolateyuninstall.ps1片段:

# 将返回值赋值给$null,阻止退出码0被输出
$null = Uninstall-ChocolateyPackage @packageArgs

问题2:仅禁用当前包的自动卸载器

要单独针对这个包关闭Chocolatey自动卸载功能(不影响全局设置),只需在卸载脚本开头添加环境变量配置:

最终完整的chocolateyuninstall.ps1:

$ErrorActionPreference = 'Stop' # stop on all errors
# 仅当前包禁用自动卸载器
$env:ChocolateyAutoUninstaller = 'disabled'

$packageArgs = @{
  packageName   = $env:ChocolateyPackageName
  softwareName  = 'Multigit*'
  fileType      = 'EXE'
  silentArgs    = '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-' # Inno Setup
  file          = 'C:\Program Files (x86)\IDEMIA\Multigit\Uninstall\unins000.exe'
}

$null = Uninstall-ChocolateyPackage @packageArgs

额外优化建议

安装脚本中silentArgs被注释,InnoSetup安装包建议启用静默参数,避免安装时弹出交互窗口,修改chocolateyInstall.ps1的packageArgs部分:

$packageArgs = @{
  packageName   = $env:ChocolateyPackageName
  fileType      = 'EXE'
  file          = Join-Path $toolsDir 'Multigit installer 1.5.1'
  softwareName  = 'Multigit*'
  silentArgs    = '/VERYSILENT /SUPPRESSMSGBOXES /NORESTART /SP-' # 取消注释启用静默参数
}

内容的提问来源于stack exchange,提问作者Philippe F

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 10:05:35