Как передать путь к журналу установки на MSI в шоколадном стиле?

В сценарии chocolateyInstall.ps1 это работает и устанавливает пакет:

Install-ChocolateyPackage 'GoogleChrome' msi /qn /L*V $toolsDir\GoogleChrome.msi

Это дает мне ошибку:

Install-ChocolateyPackage 'GoogleChrome' msi /qn /L*V C:\Windows\temp\GoogleChrome_install.log $toolsDir\GoogleChrome.msi

 Attempt to use original download file name failed for 'C:\Windows\temp\GoogleChrome_install.log'.
Copying GoogleChrome
  from 'C:\Windows\temp\GoogleChrome_install.log'
Cannot find path 'C:\Windows\temp\GoogleChrome_install.log' because it does not exist.
ERROR: Chocolatey expected a file to be downloaded to 'C:\Users\Administrator\AppData\Local\Temp\2\chocolatey\GoogleChro
me\54.0.2840.71\GoogleChromeInstall.msi' but nothing exists at that location.
The install of googlechrome was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\GoogleChrome\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).

person red888    schedule 28.10.2016    source источник


Ответы (1)


Я бы посоветовал запустить choco new (из последней версии Chocolatey). Метод, который вы вызываете, и то, как вы его вызываете, отчасти устарели.

Вам нужно передать все ваши тихие аргументы как один аргумент, прямо сейчас он разбивает аргумент на основе пробелов:

$silentArgs = "/qn /norestart /l*v `"$env:Temp\GoogleChrome_install.log`""
Install-ChocolateyPackage 'GoogleChrome' msi $silentArgs $toolsDir\GoogleChrome.msi

Вот как выглядят новые файлы chocolateyInstall.ps1:

$ErrorActionPreference = 'Stop'

$packageName  = 'Google-Chrome'
$toolsDir     = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$fileLocation = Join-Path $toolsDir 'GoogleChrome.msi'
$fileLocation64 = Join-Path $toolsDir 'GoogleChrome64.msi'
if (Get-ProcessorBits 64) {
$forceX86 = $env:chocolateyForceX86
  if ($forceX86 -eq 'true') {
    Write-Debug "User specified '-x86' so forcing 32-bit"
  } else {
    $fileLocation = $fileLocation64
  }
}

$packageArgs = @{
  packageName   = $packageName
  softwareName  = 'Google Chrome*'
  file          = $fileLocation
  fileType      = 'msi'
  silentArgs    =  "/qn /norestart /l*v `"$env:Temp\GoogleChrome_install.log`""
  validExitCodes= @(0,1641,3010)
}

Install-ChocolateyInstallPackage @packageArgs 
person ferventcoder    schedule 28.10.2016