在 Azure Devops 中发布到私有 nuget 源时如何指定 API 密钥?

How to specify an API Key when publishing to a private nuget source in Azure Devops?

我正在尝试将 NuGet 包发布到我在 Azure Devops 中创建的 NuGet 源。我有做这类事情的经验(我在 NuGet.org 上发表过)但出于某种原因我不明白,当我尝试为我的雇主做这件事时它不起作用。

当我点击“连接到 Feed”时,我看到了这样的解释:

这清楚地显示了将我的包路径放在哪里以及将源放在哪里。但是,它没有显示我生成的 API 密钥的放置位置。

但我试了一下并输入(生成包文件后):

dotnet nuget push --source "Test" --api-key az ClassLibrary1.1.0.0.nupkg

这不起作用 (401)

我真的不明白这部分的解释:“API键(任何字符串都可以)”。为什么可能“任何字符串都可以”。我需要一个有效的 API 键....不是“任何字符串”。

在那之后,我尝试以我有很好经验的方式发布(发布 nuget.org public nuget 包时)。在这个声明中,明确指定了来源和密钥。

我是这样做的:

这也行不通。我又收到了 401。

我的 API 密钥应该可以让我访问(从而防止 401)应该没问题。这就是我生成 API 密钥的方式:

很可能是我指定 API 密钥的方式有问题,而不是 API 密钥本身。那么如何在我的命令行语句中正确指定它才能成功发布我的包?

在本地推送到您的 NuGet 源之前,您必须执行几个步骤:

  1. 安装 Azure 工件凭据提供程序: https://go.microsoft.com/fwlink/?linkid=2099625
  2. 运行 dotnet restore --interactive,这将提示您输入凭据
  3. 运行 dotnet nuget push --source "BackgroundJobs" --api-key anyapikey <package-path>

注意:您可以使用任何 API 键。