我正在尝试创建一个Chocolatey包,并能够将"choco pack"和"choco push"发送到本地的chocolatey.server(简单服务器)存储库.我已将我配置C:\ProgramData\Chocolatey\config\chocolatey.config为指向我当地的chocolatey.server网址.当我试图跑
choco install test1
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
包test1想要运行'chocolateyinstall.ps1'.注意:如果不运行此脚本,安装将失败.注意:要下次自动确认,请使用'-y'或考虑设置'allowGlobalConfirmation'.运行'choco feature -h'了解更多详情.你想运行脚本吗?([Y] es/[N] o/[P] rint):Y
错误:无法绑定参数,因为多次指定参数"file".要为可以接受多个值的参数提供多个值,请使用数组语法.例如," - 参数value1,value2,value3".nimatest的安装没有成功.运行'C:\ ProgramData\chocolatey\lib\test1\tools\chocolateyinstall.ps1'时出错.请参阅日志了解详情.
Chocolatey安装0/1包.1个包失败了.有关详细信息,请参阅日志(C:\ ProgramData\chocolatey\logs\chocolatey.log).
失败 - test1(退出-1) - 运行'C:\ ProgramData\chocolatey\lib\test1\tools\chocolateyinstall.ps1'时出错.请参阅日志了解详情.
在我的test.nuspec中我有以下内容:
<files>
<!-- This section controls what actually gets packaged into the Chocolatey package -->
<file src="tools*" target="tools" />
<!-- Building from Linux? You may need this instead: <file src="tools/*" target="tools" /> -->
</files>
Run Code Online (Sandbox Code Playgroud)
在我的chocolateyinstall.ps1中,我有:
$ErrorActionPreference = 'Stop';
$packageName= 'Test1'
$toolsDir = "$(Split-Path -parent $MyInvocation.MyCommand.Definition)"
$fileLocation = Join-Path $toolsDir 'Test1.exe'
$packageArgs = @{
packageName = $packageName
fileType = 'exe'
file = $fileLocation
silentArgs = "/SP"
validExitCodes= @(0, 3010, 1641)
softwareName = 'Test1*'
checksum = ''
checksumType = 'md5'
checksum64 = ''
checksumType64 = 'md5'
}
Install-ChocolateyPackage @packageArgs
Run Code Online (Sandbox Code Playgroud)
该错误告诉您file多次指定参数,这意味着您可能具有以下之一:
file两次列入你的$packageArgsfileType和file调用Install-ChocolateyPackage,只有filetype(但filetype由于部分参数名称匹配,PowerShell传递两个参数)@packageArgs并file作为参数我们已将此问题添加到https://chocolatey.org/docs/troubleshooting.
如果您已经解决了这个问题,那么现在可能会遇到其他错误.请参阅下一节以了解原因.
你试图传递参数Install-ChocolateyInstallPackage,而不是Install-ChocolateyPackage.
如果您按照链接进行操作,您将注意到Install-Chocolatey Install Package适用于本地嵌入或UNC共享二进制文件的区别,其中Install-ChocolateyPackage用于提取远程资源.
当您创建包时,我们强烈建议您使用choco new(来自最新发布的Chocolatey版本),因为它生成的包装中包含已生成的差异文档chocolateyInstall.ps1.我们称之为"及时文档".
虽然看起来您确实使用了choco new基于您的代码,但我只是想补充一点,最新版本将提供有关创建包的最有用的文档.
| 归档时间: |
|
| 查看次数: |
4150 次 |
| 最近记录: |