首页 > 解决方案 > Chocolatey ParamPackage 为空,即使该值是在调试模式下传递的

问题描述

我正在尝试使用 Chocolatey 通过 Powershell 安装 MSI 包。按照所有文档和示例,我的设置如下所示:

巧克力安装.ps1

$ErrorActionPreference = 'Stop';
$fileLocation = Join-Path $toolsDir 'installer.msi'

$pp = Get-PackageParameters

Write-Output ("Keys count is : ${pp}")

if (!$pp['defaultName']) { Write-Error "Please provide a default name"; exit -1; }

...

当我运行此命令时: choco install .\st-installer.1.6.7.nupkg --force --params "'/defaultName:Bob'" powershell 抛出我的错误:

错误:运行命令停止,因为首选项变量“ErrorActionPreference”或公共参数设置为停止:请提供默认名称

但是,如果我使用 -d 开关运行命令,Powershell 会显示:packageParameters: '/defaultName:',

我在这里做错了什么?我已经尝试了 params、installation 参数而不是 param 包的各种引用。我不知道我还能做什么。

标签: powershellnugetwindows-installerchocolatey

解决方案


我之前在本地测试包时遇到过这种情况,我的附加参数值没有像你看到的那样被引用。我不知道为什么会这样,但不要引用nupkg. 相反,将 source 参数设置为包所在的目录(相对路径很好),然后按照包 ID 安装包,就像从Chocolatey.org安装一样。例如,如果包在您的当前目录中:

cinst -y st-installer --params "'/defaultName:Bob'" -s .

我不确定您使用的是哪个版本的 Chocolatey,但是如果我尝试通过指向nupkg磁盘上的 来安装包,我会收到一条警告,提示我更喜欢-s参数和包 ID 而不是引用包文件。


推荐阅读