Azure devops Azure DevOps NuGet源仅缓存来自上游源的第一个版本

Azure devops Azure DevOps NuGet源仅缓存来自上游源的第一个版本,azure-devops,nuget,Azure Devops,Nuget,在Azure DevOps中,我目前设置了两个NuGet提要:一个主提要和一个预发布提要。预先设置的feed是主馈源的上游源,在这里,我有预览版本的包被频繁地推送,并与我们在主进给中考虑的最终版本保持分离。 我已经按照文档设置了上游源代码,但它只适用于包的第一个版本。因此,如果将包Foo.1.0.0-preview01添加到预发布提要并通过VisualStudio安装,它将被缓存到主提要中,包将得到正确恢复,所有内容都将恢复 但是,一旦我在预发布提要中创建了一个Foo.1.0.0-preview

在Azure DevOps中,我目前设置了两个NuGet提要:一个主提要和一个预发布提要。预先设置的feed是主馈源的上游源,在这里,我有预览版本的包被频繁地推送,并与我们在主进给中考虑的最终版本保持分离。 我已经按照文档设置了上游源代码,但它只适用于包的第一个版本。因此,如果将包Foo.1.0.0-preview01添加到预发布提要并通过VisualStudio安装,它将被缓存到主提要中,包将得到正确恢复,所有内容都将恢复

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

感谢您的帮助

编辑:按要求提供更多信息

我采取的具体步骤如下:

  • 将主馈送和预释放馈送配置为主馈送的上游源。
  • Azure DevOps创建一个包Foo.1.0.0-preview.20200207.1,并通过一些自动化过程将其推送到预发布提要。它在预发布中可见,但在主版本中不可见。
  • 在VisualStudio中,将两个提要都作为包源。之所以这样做,是因为本答案末尾建议了解决方法:
  • 使用从Azure DevOps复制的命令或使用Visual Studio中的NuGet package manager UI安装Foo.1.0.0-preview.20200207.1。
  • 请参见Foo.1.0.0-preview.20200207.1现在在主提要中可见。
  • 对Foo包进行一些更改,Azure DevOps将创建一个新的Foo.1.0.0-preview.20200115.2并将其推送到预发布提要
  • 在VisualStudio中使用NuGet软件包管理器安装Foo.1.0.0-preview.20200207.2。
  • Foo.1.0.0-preview.20200207.2未出现在主提要中

  • 在LeoLiu MSFT的帮助下,问题似乎与Visual Studio中的上游源(预发布)和主源(主)都可用有关。我从VS中删除了预发布提要,它成功了

    我之所以采用这种方式设置Visual Studio,是因为在这个StackOverflow答案的末尾发现了一个解决方案建议,该建议允许我在NuGet package manager中查看未缓存的上游包:


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

    尝试使用包
    Foo.1.0.1-preview
    而不是
    Foo.1.0.0-preview02
    ?是否在Visual Studio中从主源安装包?请您与我们分享更多复制此问题的步骤和图像。谢谢。所以看起来增加实际版本号而不是预览后缀号并没有什么区别。我在原来的文章中添加了复制步骤。包图文档非常密集……对这个问题很好奇,尽管我不知道解决方案。我从您的屏幕截图中看到,您的主要提要是从您的次要提要的@local视图中获取的。您的所有预发布包都可以在第二个提要的该视图中使用吗?是的,上游源中的所有包都可以在该视图中使用。本地视图是默认视图,包含该提要上的所有包。其他视图当前为空且未使用。@QDev,似乎是因为您添加了两个源作为包源,当您使用Visual Studio中的NuGet package manager安装
    Foo.1.0.0-preview.20200207.2
    时,它直接从预发布源而不是主源获取包。因此,它不会缓存在主提要中。在VisualStudio中安装只启用主提要的包怎么样?