Chocolatey 安装与 PackageParams 错误解析第二个参数
Chocolatey Installation with PackageParams error parsing second argument
Chocolatey v0.13.3(免费版)
我们正在为我们的 Install Shield msi 安装程序创建巧克力包。
安装时,我们传入包参数 (-params) 以在安装后配置一些应用程序配置文件。
powershell 命令
cinst Company.Package –Version 1.2.3 -myf -params "DBName=DB1;DBIP=123.4.5.6;DBSomethingElse=true"
所有参数都正确传递并更新了配置文件,但巧克力抛出错误并指出第二个参数未重新克隆,这导致安装失败。
错误:术语 'DBIP=123.4.5.6' 未被识别为 cmdlet 的名称
巧克力安装。ps1
Install-ChocolateyInstallPackage @packageArgs
if ( $null -ne $env:chocolateyPackageParameters )
{
Invoke-Expression "& $( Join-Path $toolsDir 'Configuration.ps1' ) $($env:chocolateyPackageParameters)"
}
在 tools/Configuration.ps1 中,我们像这样拆分参数
$(ConvertFrom-StringData -StringData $env:chocolateyPackageParameters.Replace( ";", "`n" ) )
我错过了什么?
我知道有更好的方法来配置系统(puppet、chef...),但这就是我可用的 atm
适当地传递选项
首先,确保您将论点适当地传递给 Chocolatey。 PowerShell.exe 和 cmd.exe 处理引号的方式不同,因此我们建议 "'args here'"
- https://chocolatey.org/docs/commands-reference#how-to-pass-options-switches
您始终可以 运行 和 --noop --debug
了解这些选项如何传递到配置,而无需实际 运行 安装。您会发现 Chocolatey 在某些方面非常冗长。
你的错误
看来您是在配置中发现了错误。ps1,很好。
您可能依赖于 https://chocolatey.org/packages/chocolatey-core.extension(并将其下载到您的内部包存储库),因此您可以:
$pp = Get-PackageParameters
脚本推荐
如果您将它与脚本一起使用,建议您使用 choco upgrade
- 如果未安装软件包,它会安装,如果有更新的版本可用,它会进行升级。 HTH
Chocolatey v0.13.3(免费版)
我们正在为我们的 Install Shield msi 安装程序创建巧克力包。 安装时,我们传入包参数 (-params) 以在安装后配置一些应用程序配置文件。
powershell 命令
cinst Company.Package –Version 1.2.3 -myf -params "DBName=DB1;DBIP=123.4.5.6;DBSomethingElse=true"
所有参数都正确传递并更新了配置文件,但巧克力抛出错误并指出第二个参数未重新克隆,这导致安装失败。
错误:术语 'DBIP=123.4.5.6' 未被识别为 cmdlet 的名称
巧克力安装。ps1
Install-ChocolateyInstallPackage @packageArgs
if ( $null -ne $env:chocolateyPackageParameters )
{
Invoke-Expression "& $( Join-Path $toolsDir 'Configuration.ps1' ) $($env:chocolateyPackageParameters)"
}
在 tools/Configuration.ps1 中,我们像这样拆分参数
$(ConvertFrom-StringData -StringData $env:chocolateyPackageParameters.Replace( ";", "`n" ) )
我错过了什么?
我知道有更好的方法来配置系统(puppet、chef...),但这就是我可用的 atm
适当地传递选项
首先,确保您将论点适当地传递给 Chocolatey。 PowerShell.exe 和 cmd.exe 处理引号的方式不同,因此我们建议 "'args here'"
- https://chocolatey.org/docs/commands-reference#how-to-pass-options-switches
您始终可以 运行 和 --noop --debug
了解这些选项如何传递到配置,而无需实际 运行 安装。您会发现 Chocolatey 在某些方面非常冗长。
你的错误
看来您是在配置中发现了错误。ps1,很好。
您可能依赖于 https://chocolatey.org/packages/chocolatey-core.extension(并将其下载到您的内部包存储库),因此您可以:
$pp = Get-PackageParameters
脚本推荐
如果您将它与脚本一起使用,建议您使用 choco upgrade
- 如果未安装软件包,它会安装,如果有更新的版本可用,它会进行升级。 HTH