对于那些熟悉创建Chocolatey软件包的人,有人可以提供帮助以解决为什么此软件包不起作用的情况吗?它打包了,但是当我测试(仅安装软件包)时,它将无法工作。
这是chocolateyinstall.ps1
文件:
$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
unzipLocation = $toolsDir
fileType = 'EXE' #only one of these: exe, msi, msu
#url = $url
#url64bit = $url64
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
silentArgs = '/S' # ALLUSERS=1 DISABLEDESKTOPSHORTCUT=1 ADDDESKTOPICON=0 ADDSTARTMENU=0
validExitCodes= @(0)
}
Install-ChocolateyInstallPackage @packageArgs # https://chocolatey.org/docs/helpers-install-chocolatey-install-package
当我执行choco pack
然后运行choco install arm_rvct
时,我得到以下输出:
Installing the following packages:
arm_rvct
By installing you accept licenses for the packages.
arm_rvct v3.1
arm_rvct package files install completed. Performing other installation steps.
Installing ARM_RVCT...
Microsoft.PowerShell.Commands.WriteErrorException
Error: C3079E: armcc command with no effect
Error: C3065E: type of input file '/S' unknown
Microsoft.PowerShell.Commands.WriteErrorException
ERROR: Running ["C:\ProgramData\chocolatey\lib\arm_rvct\tools\armcc.exe" /S ] was not successful. Exit code was '1'. See log for possible error messages.
The install of arm_rvct was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\arm_rvct\tools\chocolateyinstall.ps1'.
See log for details.
Chocolatey installed 0/1 packages. 1 packages failed.
See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
Failures
- arm_rvct (exited 1) - Error while running 'C:\ProgramData\chocolatey\lib\arm_rvct\tools\chocolateyinstall.ps1'.
See log for details.
答案 0 :(得分:1)
它准确地告诉您错误消息中的问题:
Error: C3079E: armcc command with no effect
Error: C3065E: type of input file '/S' unknown
首先,您似乎正在注释掉,或者至少没有为armcc.exe
提供必需的参数。其次,看起来/S
中的armcc.exe
不是用于静默安装的-它想要一个您当前不作为静默arg的一部分提供的输入文件。
armcc.exe
不是安装程序-如果您的工具链没有合适的安装程序,请考虑将工具链放入zip存档中,将该zip嵌入您的软件包中,然后使用{{ 3}},而不是Install-ChocolateyZipPackage
(后者用于安装exe或msi安装程序)。
这将自动为可执行文件生成一些填充,并将它们放在路径上。请注意,由于这看起来像是arm_rvct
编译器的代码,因此,如果该代码通常接受管道输入,则Chocolatey垫片实际上不支持管道输入,因此请牢记该限制,并牢记生成的垫片。
看起来确实有一个Install-ChocolateyInstallPackage
用于ARM工具链。但是,发行说明中的official installer没有提供任何静默安装说明。也就是说,这是未公开文档的安装程序的常见问题-但这并不意味着您也无法付出任何努力来执行静默安装。
您可以尝试运行setup.exe /S
或使用ARM Compiler 6.13.msi
引用的msiexec /i "ARM Compiler 6.13.msi" /qn
。如果上述两种方法都不起作用,则可以选择与供应商联系以询问静默安装的工作方式,或者可以采用将已安装文件打包为zip的方法。请注意,安装程序(尤其是对于devkit和工具链的安装程序)可能会在Windows中注册程序集,如果简单的文件安装不起作用,则反向工程可能会变得很复杂。
在这种情况下,供应商将是了解您如何在整个组织中部署此程序包的最佳资源。