powershell - 将 Powershell 模块发布到 bintray nuget repo
问题描述
我在 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 帐户管理员时,我收到错误 405“不允许”。使用 PowerShellPublish-Module
并直接调用 nuget 确实如此。curl
给我一个 400 错误:“上传时发生错误”,bintray-cli 也是如此。Web UI 提供一般错误消息。
这篇文章说它适用于 Artifactory;jfrog 将 bintray 称为“成熟的 nuget 存储库”。那么为什么这不起作用呢?
解决方案
正确指定身份验证信息和 URL 后,我遇到了问题编辑中详述的 400 / 405 错误(“上传时发生错误”)。
我们确定失败是由<tags>
包 .nuspec 文件中的元素超过 1024 个字符引起的。这不是已发布的限制,也不是格式的固有限制(nuget.org 宣传它们最多支持 4000 个字符)。删除或截断标签允许将包上传到 bintray。
推荐阅读
- html - 纯 CSS 复选框在 iOS 上的显示方式不同
- angular - Angular:如何使用 *ngFor 在 Firebase 存储中循环图像文件
- java - 找不到 Spring Boot Maven 插件类
- azure - 新登录和用户无法立即登录到数据库,但在随机时间段后工作 - Azure SQL Server
- spotfire - 如何在spotfire的地图图表中将标签内的文本居中?
- go - yaml:解组错误:无法将字符串解组为时间。Golang中的持续时间
- angular - 为什么 PrimeNG 的 FileUpload 在 onBeforeUpload 事件后不调用服务器?
- python - 当我在 selenium python 中获取 MP4 文件的 URL 时如何下载视频?(没有 URLLIB)
- xamarin - 如何使用 Xamarin Essentials 获取蓝牙连接状态
- php - php.ini mysqli.allow_persistent 即使在 php 重启后也不会关闭