问题描述
我在bintray中创建了一个nuget存储库,我想发布一个Powershell模块。我已经在Bintray中创建了一个程序包并添加了一个版本。
首先,我添加了存储库:
Register-PSRepository -Name "Bintray" -SourceLocation "https://api.bintray.com/nuget/{organization}/{repository}" -PublishLocation "https://api.bintray.com/nuget/{organization}/{repository}" -InstallationPolicy Trusted
然后,我尝试发布:
Publish-Module -Path . -Repository "Bintray" -NugetApiKey {MyApiKey}
Publish-PSArtifactUtility:无法发布模块'MyModule':'响应状态代码不指示成功:401(未授权)'
我已经检查了我的API密钥,我的用户是“成员”,并且成员在存储库中具有“发布”权限。对存储库没有任何限制。 Bintray中的软件包名称与我要发布的模块的名称匹配。
我还尝试将-Credential {UserName}
附加到发布命令,并在出现提示时输入密码。结果总是一样。
我想念什么?如何将Powershell模块发布到Bintray nuget存储库?
编辑更新:当我尝试使用Bintry帐户admin时,我收到错误405“不允许”。使用PowerShell Publish-Module
并直接调用nuget就是这样。 curl
给了我400错误:bintray-cli也出现“上传时发生错误”。 Web UI会显示一般错误消息。
此article表示可与Artifactory一起使用; jfrog将Bintray称为“成熟的nuget储存库”。那为什么不起作用?
解决方法
请澄清一下,JFrog仅有的文档在这里,并且并没有太大帮助:
我们能够在bintray中创建一个nuget存储库,并尝试使用bintray中的等效URL(而不是人工制品)进行成功。在这种情况下,相对于内部工件管理(人工工厂),我们确实需要合适的东西可以对外发布给客户(纸盒)。
,正确指定了身份验证信息和URL后,我发现了问题编辑中详细说明的400/405错误(“上载时发生错误”)。
我们确定失败是由程序包.nuspec文件中的{{1}}元素引起的,该元素超过1024个字符。这不是发布的限制,也不是格式的固有限制(nuget.org宣传它们最多支持4000个字符)。删除或截断标签可以将包装上载到Bintray。