Могу ли я создать тихий установщик с Chocolatey, просто используя setup.exe программы и shimgen? - PullRequest
1 голос
/ 28 февраля 2020

Когда я пытаюсь создать программу установки без вывода сообщений для программы, могу ли я просто использовать setup.exe этой программы в папке инструментов и просто создать для нее прокладку? Если да, то где он будет установлен? Например, я удалил все элементы в папке инструментов и вставил setup.exe для ARM RVDS 4.1. Когда я сделал choco pack, это породило шим, но теперь я не знаю, что с этим делать, или я сделал это правильно.

Ответы [ 2 ]

1 голос
/ 28 февраля 2020

Если вы поместите исполняемый файл в папку tools, то Chocolatey создаст для него оболочку при установке пакета. Шим позволяет исполняемый файл быть доступным по пути.

Что вы хотите сделать, это запустить установщик, когда пакет установлен, и вы делаете это, используя файл chocolateyInstall.ps1. Если вы запустите choco new <packagename>, вы получите образец chocolateyInstall.ps1 файла, который вы можете использовать в качестве шаблона.

1 голос
/ 28 февраля 2020

Вы не хотите устанавливать подкладку для установщика - вы хотите вызвать установщик из chocolateyInstall.ps1 для установки программы. Пример того, как вы сделаете это в chocolateyInstall.ps1 для установки exe, будет:

$packageInstallArgs = @{
  PackageName = 'package-name'
  FileType = 'exe'
  SilentArgs = '/q /someOtherArguments' # This line is going to be installer specific, and is just a sample here
  File = 'C:\Path\to\installer' # can be a relative path too
  ValidExitCodes = 0, 1638 # array of acceptable return codes for the installer
}

Install-ChocolateyInstallPackage @packageInstallArgs

Если ваш setup.exe встроен в пакет, вы можете ссылаться на текущий каталог папки пакета со следующей переменной среды: $env:chocolateyPackageFolder. Эта переменная существует только в контексте установки пакета Chocolatey. См. Здесь для получения дополнительной информации о переменных среды Chocolatey.

Некоторые сведения о приведенном выше коде:

  • PackageName: это имя (id) пакета
  • FileType: это 'exe' или 'msi'?
  • SilentArgs: любые аргументы, необходимые для выполнения автоматической установки программы
  • Файл: Относительный или абсолютный путь к файлу установщика
  • ValidExitCodes: любые коды выхода, которые следует рассматривать как успешную установку. Те, что я использовал в моем примере, означают успех (0) и требуется перезагрузка (1638). См. на этой странице для получения дополнительной информации о стандартных кодах выхода установщика. Найдите коды ошибок, которые начинаются с ERROR_SUCCESS для кодов успеха, которые вам, возможно, понадобится поддерживать.

При желании вы можете сгенерировать прокладки для программ, которые автоматически не помещаются в PATH для удобства, в случай, когда прокладка не генерируется автоматически.

Место установки программы зависит от расположения установщика по умолчанию и от того, позволяет ли установщик переопределить его.


Обратите внимание, что хотя автоматически сгенерированные прокладки будут удалены при удалении автоматически, прокладки, созданные с помощью Install-BinFile, необходимо удалить вручную при удалении пакета с помощью Uninstall-BinFile из chocolateyUninstall.ps1.


Вот еще немного информации о прокладках:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...