【问题标题】:How to specify an API Key when publishing to a private nuget source in Azure Devops?在 Azure Devops 中发布到私有 nuget 源时如何指定 API 密钥?
【发布时间】:2021-03-11 10:43:35
【问题描述】:

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

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

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

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

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

这不起作用(401)

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

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

我是这样做的:

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

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

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

【问题讨论】:

    标签: azure-devops nuget nuget-package dotnetcorecli


    【解决方案1】:

    在本地推送到 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 密钥。

    【讨论】:

    • 谢谢。我仍然感到非常惊讶的是,预期的 api 关键参数最终可以是任何值......但确实你是对的。这行得通。刚刚在 WSL2 中测试。
    • 是的,这很奇怪。微软的文档甚至表明它可以是任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多