首页 > 解决方案 > Azure DevOps NuGet 源仅缓存来自上游源的第一个版本

问题描述

在 Azure DevOps 中,我目前设置了两个 NuGet 源:一个主源和一个预发布源。预发布提要设置为主要提要的上游来源,我可以在其中频繁地自动推送软件包的预览版本,并与我们认为主要提要中的最终版本分开。

我已按照文档设置上游源,它可以工作,但仅适用于包的第一个版本。因此,如果包 Foo.1.0.0-preview01 被添加到 Prerelease 提要并通过 Visual Studio 安装,它会缓存到主提要中,并且包会正确恢复和一切。

但是,一旦我在 Prerelease 提要中创建 Foo.1.0.0-preview02 并重复上述步骤(通过 VS 安装),新版本就不会像第一个那样缓存到主提要中。我已经尝试了几天并使用不同的软件包,并且行为是一致的。

任何帮助表示赞赏。

编辑:根据要求提供更多信息。

我采取的具体步骤如下:

  1. 将主要提要和预发布提要配置为主要的上游来源。 在此处输入图像描述
  2. Azure DevOps 通过一些自动化过程创建包 Foo.1.0.0-preview.20200207.1 并将其推送到预发布源。它在售前赛中可见,但在初级赛中不可见。 在此处输入图像描述在此处输入图像描述
  3. 在 Visual Studio 中,将两个提要都作为包源。这是因为在此 StackOverflow 答案末尾建议的解决方法:https ://stackoverflow.com/a/56196158/4183606 VS 提要
  4. 使用从 Azure DevOps 复制的命令或使用 Visual Studio 中的 NuGet 包管理器 UI 安装 Foo.1.0.0-preview.20200207.1。 在此处输入图像描述
  5. 看到 Foo.1.0.0-preview.20200207.1 现在在主提要中可见。 在此处输入图像描述
  6. 对 Foo 包进行一些更改,Azure DevOps 会创建一个新的 Foo.1.0.0-preview.20200115.2 并将其推送到预发布源。
  7. 使用 Visual Studio 中的 NuGet 包管理器安装 Foo.1.0.0-preview.20200207.2。 在此处输入图像描述
  8. Foo.1.0.0-preview.20200207.2 未出现在主要提要中。

标签: azure-devopsnuget

解决方案


在 LeoLiu-MSFT 的帮助下,问题似乎与 Visual Studio 中同时提供上游源(Prerelease)和主要源(Primary)有关。我从 VS 中删除了 Prerelease 提要,它起作用了。

由于在此 StackOverflow 答案末尾发现了一个解决方法建议,我以这种方式设置了 Visual Studio,这将允许我在 NuGet 包管理器中查看未缓存的上游包:https ://stackoverflow.com/a/56196158/4183606

在删除上游源(在我的情况下为预发布),然后运行 ​​powershell 命令以针对主要提要安装预览版本后,它似乎迫使主要提要在上游提要中查找它没有的版本然后缓存它。


推荐阅读