设置自定义 Chocolatey 包时出现空键错误
Null key error while setting up custom Chocolatey package
我正在尝试创建一个自定义 Chocolatey 程序包,它将使用来自文件共享的 msi 文件,但我收到以下错误。在此过程中,我已经能够解决大部分错误,但我无法弄清楚这一点。
有谁知道如何解决这个问题或知道我可以做些什么来调试这个问题?
错误
ERROR: A null key is not allowed in a hash literal.
The install of ciscojabbertest2 was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\ciscojabbertest2\tools\chocolateyinstall.ps1'.
下面是我的 nuspec 文件和我的 chocolateyinstall.ps1 文件的副本。
ciscojabbertest2.nuspec
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2015/06/nuspec.xsd">
<metadata>
<id>ciscojabbertest2</id>
<version>11.9.1.55716</version>
<title>ciscojabbertest2</title>
<authors>Cisco Systems, Inc</authors>
<tags>Installer_MSI_Database</tags>
<summary>Cisco Jabber</summary>
<description>Cisco Jabber</description>
</metadata>
<files>
<file src="tools\**" target="tools" />
</files>
</package>
巧克力安装。ps1
$ErrorActionPreference = 'Stop';
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$fileLocation = '\WIN-5LEH3K6JCM3\Software_Test\CiscoJabberSetup.msi'
$packageArgs = @{
packageName = $env:ChocolateyPackageName
unzipLocation = $toolsDir
fileType = 'MSI'
$file = $fileLocation
softwareName = 'Cisco Jabber*'
checksum = 'A027601E0975339286EEECF593D83FF71FA64902B46A8F10F93B5E63663A215F'
checksumType = 'sha256'
silentArgs = "/quiet CLEAR=1"
validExitCodes= @(0, 3010, 1641)
}
Install-ChocolateyInstallPackage @packageArgs
我怀疑您看到的错误是由于未定义的变量 $file
。结果,您在哈希文字中得到了一个没有任何值的键。
将其更改为以下内容:
$ErrorActionPreference = 'Stop';
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$fileLocation = '\WIN-5LEH3K6JCM3\Software_Test\CiscoJabberSetup.msi'
$packageArgs = @{
packageName = $env:ChocolateyPackageName
unzipLocation = $toolsDir
fileType = 'MSI'
file = $fileLocation
softwareName = 'Cisco Jabber*'
checksum = 'A027601E0975339286EEECF593D83FF71FA64902B46A8F10F93B5E63663A215F'
checksumType = 'sha256'
silentArgs = "/quiet CLEAR=1"
validExitCodes = @(0, 3010, 1641)
}
Install-ChocolateyInstallPackage @packageArgs
我正在尝试创建一个自定义 Chocolatey 程序包,它将使用来自文件共享的 msi 文件,但我收到以下错误。在此过程中,我已经能够解决大部分错误,但我无法弄清楚这一点。
有谁知道如何解决这个问题或知道我可以做些什么来调试这个问题?
错误
ERROR: A null key is not allowed in a hash literal.
The install of ciscojabbertest2 was NOT successful.
Error while running 'C:\ProgramData\chocolatey\lib\ciscojabbertest2\tools\chocolateyinstall.ps1'.
下面是我的 nuspec 文件和我的 chocolateyinstall.ps1 文件的副本。
ciscojabbertest2.nuspec
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2015/06/nuspec.xsd">
<metadata>
<id>ciscojabbertest2</id>
<version>11.9.1.55716</version>
<title>ciscojabbertest2</title>
<authors>Cisco Systems, Inc</authors>
<tags>Installer_MSI_Database</tags>
<summary>Cisco Jabber</summary>
<description>Cisco Jabber</description>
</metadata>
<files>
<file src="tools\**" target="tools" />
</files>
</package>
巧克力安装。ps1
$ErrorActionPreference = 'Stop';
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$fileLocation = '\WIN-5LEH3K6JCM3\Software_Test\CiscoJabberSetup.msi'
$packageArgs = @{
packageName = $env:ChocolateyPackageName
unzipLocation = $toolsDir
fileType = 'MSI'
$file = $fileLocation
softwareName = 'Cisco Jabber*'
checksum = 'A027601E0975339286EEECF593D83FF71FA64902B46A8F10F93B5E63663A215F'
checksumType = 'sha256'
silentArgs = "/quiet CLEAR=1"
validExitCodes= @(0, 3010, 1641)
}
Install-ChocolateyInstallPackage @packageArgs
我怀疑您看到的错误是由于未定义的变量 $file
。结果,您在哈希文字中得到了一个没有任何值的键。
将其更改为以下内容:
$ErrorActionPreference = 'Stop';
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$fileLocation = '\WIN-5LEH3K6JCM3\Software_Test\CiscoJabberSetup.msi'
$packageArgs = @{
packageName = $env:ChocolateyPackageName
unzipLocation = $toolsDir
fileType = 'MSI'
file = $fileLocation
softwareName = 'Cisco Jabber*'
checksum = 'A027601E0975339286EEECF593D83FF71FA64902B46A8F10F93B5E63663A215F'
checksumType = 'sha256'
silentArgs = "/quiet CLEAR=1"
validExitCodes = @(0, 3010, 1641)
}
Install-ChocolateyInstallPackage @packageArgs