如何将包添加到 devops 工件? (您的包裹被推送的非权威信息)

how do I add a package to a devops artifact? (NonAuthoritativeInformation your package was pushed)

访问我的正常包裹提要暂时失败,我需要组织一个替代方案。

我本地有相关文件

如果我能简单地将它们上传到 Feed 中就太好了。 但是我看不到上传选项。

当我点击连接到 feed 时,我看到了说明

nuget.exe push -Source "feedname" -ApiKey az <packagePath>

所以我在dos命令行下试了一下 但出现错误

The specified source 'feedname' is invalid. Provide a valid source.

该提要确实存在。

[更新]

听从 Turbot 的建议,并确定我的用户名是我的电子邮件后,我收到了一条 NonAuthoritiveInvormation 消息“您的包裹已被推送”,但我还没有看到它。

正在检查this issue

[更新]

我的命令是这样的

nuget.exe sources add -Name "MyFeedName" -Source "https://dev.azure.com/MyTeam/MyApp/_packaging?_a=feed&feed=MyFeedName" -username "kirsteng@mydomain.com.au" -password "mypat"


nuget push -Source "MyFeedName"  -ApiKey az C:\Users\kirst\.nuget\packages\mypackage.0.173\mypackage.1.0.173.nupkg

我把命令放到一个 .bat 文件中 当我重新 运行 它时,我也看到

The name specified has already been added to the list of available package sources. 
Provide a unique name.

我想这是有道理的。

我也看到了

NonAuthoritiveInformation 
https://dev.azure.com/MyTeam/MyApp/_packaging?_a=feed&feed=MyFeedName 
Your Package was pushed

但事实并非如此。

我也试过用双引号将包名括起来。

我通过输入 nuget 看到了吗?那

 push              Pushes a package to the server and publishes it.
                   NuGet's default configuration is obtained by loading %AppData%\NuGet\NuGet.config, then loading any n
                   uget.config or .nuget\nuget.config starting from root of drive and ending in current directory. 

我想知道这是否相关。

Nuget.exe 是版本:5.9.1.11

这里是the docs

[更新]

我发现添加命令正在写入

C:\Users\kirst\AppData\Roaming\NuGet\Nuget.Config

我编辑了它以删除提要并重新运行 我的 bat 文件。 然后我就可以让它工作了。

我做错的另一件事是 url 本身。应该是

https://pkgs.dev.azure.com/mycompany/myapp/_packaging/myfeedname/nuget/v3/index.json

准确地说是在 Azure DevOps 中使用 Nuget 您需要在 nuget.config 或命令中提供用户 ID 和 PAT。

nuget sources add -Name <SourceName> -Source <SourceURL> -username <UserName> -password <Pat>
nuget push -Source <SourceName> -ApiKey az <PackagePath exp:(.\Get-Hello.1.0.0.nupkg)>

我最近在做这个 Artifacts 提要工作时遇到了类似的问题。我的学习如下

  1. MS 在这方面的文档不是很好(在一个地方)。所以这对我来说主要是反复试验。

  2. 可用于发布包的PAT应该有这个范围

  3. 如何获取提要url?

    • 在 ADO web UI 中,转到 Artifacts 并 select 下拉列表中的提要
    • 按“连接到 feed”
    • 如果您使用 nuget 作为提要,请单击 Nuget.exe 选项。
    • 右侧,它将显示您的 url 以及将其添加到 nuget.config 的步骤。
  4. 但是如果你想提取包,上面的内容很好。通过命令行推送包怎么办? 使用这 2 个命令我们可以做到这一点

    nuget sources add -Name "你的 feed 名称" -Source "Feed url" -username -密码“PAT with Packaging scope”

    nuget push -Source "Your feed name" -ApiKey "一些字符串,我不确定它是否用于推送包"