问题描述
我正在尝试将 NuGet 包发布到我在 Azure Devops 中创建的 NuGet 源。我有做这些事情的经验(我在 NuGet.org 上发表过),但由于某种原因我不明白,当我尝试为我的雇主做这件事时,它不起作用。
当我点击“Connect To Feed”时,我看到了这个解释:
这清楚地显示了放置我的包路径的位置以及放置源的位置。但是,它没有显示我生成的 API 密钥放在哪里。
dotnet nuget push --source "Test" --api-key az ClassLibrary1.1.0.0.nupkg
这不起作用 (401)
我真的不明白这部分解释:“API Key(任何字符串都可以)”。为什么可能“任何字符串都可以”。我需要一个有效的 API 密钥......不是“任何字符串”。
在那之后,我尝试以我有良好经验的方式发布(发布 nuget.org 公共 nuget 包时)。在此声明中,明确指定了来源和密钥。
我是这样做的:
这也行不通。我又收到了 401。
我的 API 密钥应该可以让我访问(从而防止 401)应该没问题。这是我生成 API 密钥的方式:
很可能是我指定 API 密钥的方式有问题,而不是 API 密钥本身有问题。那么如何在我的命令行语句中正确指定它以成功发布我的包?
解决方法
在本地推送到 NuGet 提要之前,您必须执行几个步骤:
- 安装 Azure Artifact 凭据提供程序: https://go.microsoft.com/fwlink/?linkid=2099625
- 运行
dotnet restore --interactive
,这将提示您输入凭据 - 运行
dotnet nuget push --source "BackgroundJobs" --api-key anyapikey <package-path>
注意:您可以使用任何 API 密钥。