我使用错误的.exe文件创建Chocolatey软件包吗?

时间:2020-02-21 14:23:01

标签: powershell cmd command-prompt chocolatey

我将不得不创建一堆本地巧克力包装,​​但仍然无法创建我的第一个巧克力包装。为弄清楚这一点,我是否需要使用installer.exe进行打包? 这是chocolateyinstall.ps1的示例,我可以尝试进行第一次打包,我将armcc.exe用于我要制作的ARM RVCT安装程序。

$ErrorActionPreference = 'Stop'; # stop on all errors
$toolsDir   = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$fileLocation = Join-Path $toolsDir 'armcc.exe'
$packagename = 'ARM_RVCT'
$packageArgs = @{
  packageName   = $packagename
  fileType      = 'EXE' #only one of these: exe, msi, msu
  file         = $fileLocation

  softwareName  = 'ARM_RVCT*' #part or all of the Display Name as you see it in Programs and Features. It should be enough to be unique
  validExitCodes= @(0, 3010, 1641)

  silentArgs   = '/VERYSILENT'
  #silentArgs   = '/s'           # InstallShield
  #silentArgs   = '/s /v"/qn"'   # InstallShield with MSI
  #silentArgs   = '/s'           # Wise InstallMaster
  #silentArgs   = '-s'           # Squirrel
  #silentArgs   = '-q'           # Install4j
  #silentArgs   = '-s'           # Ghost
  # Note that some installers, in addition to the silentArgs above, may also need assistance of AHK to achieve silence.
  #silentArgs   = ''             # none; make silent with input macro script like AutoHotKey (AHK)
}

Install-ChocolateyInstallPackage @packageArgs # https://chocolatey.org/docs/helpers-install-chocolatey-install-package

我刚刚关闭了可以找到的文档,但实际上不知道要查找什么。我知道我的软件包需要本地来源,仅此而已。如果我可以创建一个成功的程序包并真正理解它,我想我应该可以在其余的程序中成功。

1 个答案:

答案 0 :(得分:1)

有许多教程可以引导您完成创建NuGet包的过程。 Chocolatey从本地源或工件安装nuget软件包,并使用打包的nuget文件。此nuget软件包包含nuspec文件,该文件包含meta,tools文件夹,该文件夹通常包含任何可执行文件或自定义应用程序或脚本以及Chocolatey安装和卸载脚本。

Choco new packageName应该让您使用包含所有文件的软件包
完成修改数据后,choco pack <path/to/nuspec>

没有nuget软件包,巧克力般的安装将无法正常工作。

One source on how to create NuGet package

Good source as well

Google如何创建nuget程序包,然后在本地对其进行测试。