Azure DevOps Artifacts Feed中填充了NuGet Gallery软件包。

3

我目前正在尝试在自己托管的Azure DevOps服务器上建立一个nuget/dotnet pack构建和发布流程:

  • 构建流程(build pipeline)会构建源码,将其打包成nupkg并上传到drop artifacts(释放物件)中。
  • 发布流程(release pipeline)会从drop文件夹中提取nupkg并在包更新时执行nuget push操作。

因此,我创建了一个artifacts feed,测试了这些流程,运行连接到该feed的代理并构建解决方案,一切都很好。几个小时后,我检查了我的feed,发现里面包含了来自NuGet Gallery的标准包。

enter image description here

起初我以为是我的流程意外地推送了这些包,所以我删除了该feed,稍后(在后台清除之后)用相同的名称创建了一个新的feed。几分钟后,再次发现来自NuGet Gallery的包又出现在了feed中,但没有运行我的流程。

这是怎么回事,我是否有什么误解?

我的自托管代理的配置\AppData\Roaming\NuGet\NuGet.Config:

<configuration>
  <packageSources>
    <add key="nuget.org" value="https://api.nuget.org/v3/index.json" protocolVersion="3" />
    <add key="MyFeed1" value="https://mylocalurl.de/ColA/_packaging/ProjA/nuget/v3/index.json" />
  </packageSources>
</configuration>```
1个回答

6

Azure DevOps工件存储库将填充NuGet Gallery软件包。

这是一种预期的行为。

这是因为在创建此存储库时,如果启用从公共源获取程序包的设置,则私有NuGet Feed默认将nuget.org设置为上游源

enter image description here

然后进入 设置 -> 上游源,你会发现有三个公共源列出:

enter image description here

enter image description here

你可以使用筛选器选择包的来源。
当我们从上游源下载任何软件包时,Azure Artifacts feed会自动缓存这些软件包,这样我们下次就能看到它们,不需要再从上游源下载。
如果你不想使用缓存这些软件包,你可以在创建feed时选择下一个选项仅使用发布到此feed的软件包

使用公共源包选项有什么缺点吗?或者推荐的方法是启用还是禁用它? - Sebastian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接