Vagrant Install-ChocolateyInstallPackage: $ File параметр не распознан - PullRequest
3 голосов
/ 22 июня 2019

Я создаю свой собственный пакет chocolatey и использую Install-ChocolateyInstallPackge для установки программного обеспечения.Согласно документации, этой функции требуется HashTable для передачи аргументов своим параметрам.У меня есть следующие:

 #File:  chocolateyInstall.ps1
 $ErrorActionPreference="stop"
 $toolsDir = $(Split-Path -parent $MyInvocation.MyCommand.Definition)
 $installFile = Join-Path $toolsDir "jdk8u211windowsx64.exe" # JDK.exe is in parent
 ....
 $packageArgs = @{
    PackageName    = 'jdk8da'
    FileType       = 'exe'
    SoftwareName   = 'JDK8*'
    File           = $installFile
    SilentArgs     = '/s ADDLOCAL="ToolsFeature" INSTALLDIR=C:\JAVA'
    ValidExitCodes = @(0)
 }

 Install-ChocolateyInstallPackage $packageArgs

 .... #Setting Environment Variables....

Однако я получаю сообщение об ошибке:

ERROR: Package parameters incorrect, either File or File64 must be specified

Как видно, я четко указал файл exe с путем заполнения.

Это работает, если я укажу параметр File непосредственно для функции:

Install-ChocolateyInstallPackage -PackageName "JDK8" -FileType "exe" -File $installFile ....

Куда я скучаю, кто-нибудь может указать на это, пожалуйста?

1 Ответ

3 голосов
/ 22 июня 2019

В связи с тем, что вы используете «разбрызгивание» параметров PowerShell, вы должны использовать немного другой синтаксис при фактическом использовании переменной packageArgs.

Вы должны сделать это:

Install-ChocolateyInstallPackage @packageArgs

Вместо:

Install-ChocolateyInstallPackage $packageArgs

Посмотрите здесь:

https://github.com/chocolatey-community/chocolatey-coreteampackages/blob/master/automatic/calibre/tools/chocolateyInstall.ps1

Для полного примера.

...