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

问题描述

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

当我点击“Connect To Feed”时,我看到了这个解释:

enter image description here

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

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

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

这不起作用 (401)

enter image description here

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

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

我是这样做的:

enter image description here

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

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

enter image description here

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

解决方法

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...