1

在为Chocolatey创建包时,安装失败,因为安装程序要求选择语言: 窗口询问用户的安装语言

因此,我尝试按照此页面中的说明获取用户的语言 ( get-culture),并通过调用变量 ( $locale) 将其添加到安装参数中:

$ErrorActionPreference = 'Stop';
$toolsDir   = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$locale = "/L=" + (Get-Culture).LCID


$packageArgs = @{
  packageName   = 'PNAME'
  unzipLocation = $toolsDir
  file           = "PNAME32bit.exe"
  file64         = "PNAME64bit.exe"
  fileType      = 'EXE'
  silentArgs     = '/S $locale'
  softwareName  = 'PNAME*'
  validExitCodes= @(0)
}

Install-ChocolateyInstallPackage @packageArgs
Remove-Item $toolsDir\*.exe -ea 0 -force

不幸的是,没有任何变化,这个窗口仍然出现。

因此,我的问题是:如何在安装期间指定用户的语言,以便安装程序考虑到这一点?

预先感谢您的帮助 !

4

1 回答 1

1

如果安装程序不允许您在安装时指定语言,那么您有两个选择:

  1. 使用诸如 AutoHotkey 之类的工具来自动执行语言的点击(请参阅Veracrypt包以获得一个很好的例子);
  2. 将安装程序包装到一个 MSI 中,然后您可以自动选择语言(您可能必须为每种语言创建一个 MSI);

第一个相对微不足道,但可能有点混乱(Autohotkey 会在后台运行,检测窗口,单击正确的语言等)。当您必须开始“点击”​​正确的语言时,它也可能会变得混乱。第二种方法是首选方法,因为它不那么混乱,但需要一些时间与安装程序一起工作。

理想的解决方案当然是找到正确的参数传递给安装程序,或者让供应商添加这样的参数。

于 2020-09-21T12:31:19.677 回答