首页 > 解决方案 > 使用 Azure Devops 发布 Nuget 包

问题描述

我正在尝试在 Azure DevOps 中创建一个发布管道,它将一个包发布到 Nuget.org。构建管道工作得很好,并将包创建为构建工件。我可以发布到 Azure Artifacts 中托管的提要,但我无法发布到 Nuget.org。我相信问题出在服务连接上。服务连接.

我试过使用 ApiKey 但这会引发错误

DotNet Core 不支持加密的 API Key 错误

这是尝试推送包的发布步骤。 在此处输入图像描述

我也尝试过https://api.nuget.org/v3/index.json作为 Feed URL,但这似乎没有什么不同。

日志输出。

2018-10-21T23:27:36.3177322Z ##[section]开始:Nuget Push 2018-10-21T23:27:36.3183449Z ==================== ==================================================== ======= 2018-10-21T23:27:36.3183547Z 任务:.NET Core 2018-10-21T23:27:36.3183635Z 描述:构建、测试、打包或发布 dotnet 应用程序,或运行自定义点网命令。对于包命令,支持 NuGet.org 和经过身份验证的源,如包管理和 MyGet。2018-10-21T23:27:36.3183729Z 版本:2.141.0 2018-10-21T23:27:36.3183791Z 作者:Microsoft Corporation 2018-10-21T23:27:36.3183871Z 帮助:更多信息 2018-10-21T23:27:36.3183936Z ======================================= ======================================= 2018-10-21T23:27:37.1663123Z [命令]C:\Windows\system32\chcp.com 65001 2018-10-21T23:27:37.1762529Z 活动代码页:65001 2018-10-21T23:27:37.1808736Z SYSTEMVSSCONNECTION 存在 true 2018-10-21T23:27:37.347359Z SYSTEMVSSCONNECTION 存在为真 2018-10-21T23:27:37.4707171Z SYSTEMVSSCONNECTION 存在为真 2018-10-21T23:27:37.4739974Z e3e8a3af-5c6c-44e9-820c-c62af0972256 存在为真 2018-10-21T74:37.37 保存配置到临时配置文件。2018-10-21T23:27:37.4833034Z 将 NuGet.config 保存到临时配置文件。2018-10-21T23:27:37.4919745Z 使用以下 URI 的身份验证信息:https ://www.nuget.org/api/v2/package 2018-10-21T23:27:37.4988034Z [命令]C:\hostedtoolcache\windows\dncs\2.1.105\x64\dotnet.exe nuget push "{package}" --source https://www.nuget.org /api/v2/package --api-key RequiredApiKey 2018-10-21T23:27:38.3984300Z 信息:将 TranslatorConsole.1.0.0.6.nupkg 推送到“ https://www.nuget.org/api/v2/package ” ... 2018-10-21T23:27:38.4171650Z 信息:PUT https://www.nuget.org/api/v2/package/ 2018-10-21T23:27:38.8798808Z 信息:禁止https://www .nu​​get.org/api/v2/package/462ms 2018-10-21T23:27:38.9562536Z 错误:响应状态码不表示成功:403(指定的API密钥无效,已过期,或无权访问指定的包。)。2018-10-21T23:27:40.2195255Z ##[错误]错误:C:\hostedtoolcache\windows\dncs\2.1.105\x64\dotnet.exe 失败,返回码:1 2018-10-21T23:27:40.2206711 Z ##[error]Packages failed to publish 2018-10-21T23:27:40.2307763Z ##[section]Finishing: Nuget Push

标签: nugetazure-devopsazure-pipelines-release-pipeline

解决方案


Github 中跟踪到一个问题:DotNetCore 目前不支持使用加密的 Api Key

dotnet 目前不支持使用 ApiKey,因为加密密钥所需的库不可用,给您带来的不便敬请谅解。您应该能够使用配置了用户名/密码组合的服务端点。如果只能使用 ApiKey,建议使用 nuget 2.* 任务推送。

因此,您可以尝试使用Nuget 2.*任务来推送包。(添加任务--> 包--> Nuget)

或者,您可以通过调用命令来尝试通过命令行任务将包推送到 NuGet 服务器dotnet nuget push来处理此问题。参考此线程:尝试从 VSTS 推送 nuget 包时出错


推荐阅读