azure-devops - Azure DevOps NuGet 源仅缓存来自上游源的第一个版本
问题描述
在 Azure DevOps 中,我目前设置了两个 NuGet 源:一个主源和一个预发布源。预发布提要设置为主要提要的上游来源,我可以在其中频繁地自动推送软件包的预览版本,并与我们认为主要提要中的最终版本分开。
我已按照文档设置上游源,它可以工作,但仅适用于包的第一个版本。因此,如果包 Foo.1.0.0-preview01 被添加到 Prerelease 提要并通过 Visual Studio 安装,它会缓存到主提要中,并且包会正确恢复和一切。
但是,一旦我在 Prerelease 提要中创建 Foo.1.0.0-preview02 并重复上述步骤(通过 VS 安装),新版本就不会像第一个那样缓存到主提要中。我已经尝试了几天并使用不同的软件包,并且行为是一致的。
任何帮助表示赞赏。
编辑:根据要求提供更多信息。
我采取的具体步骤如下:
- 将主要提要和预发布提要配置为主要的上游来源。
- Azure DevOps 通过一些自动化过程创建包 Foo.1.0.0-preview.20200207.1 并将其推送到预发布源。它在售前赛中可见,但在初级赛中不可见。
- 在 Visual Studio 中,将两个提要都作为包源。这是因为在此 StackOverflow 答案末尾建议的解决方法:https ://stackoverflow.com/a/56196158/4183606
- 使用从 Azure DevOps 复制的命令或使用 Visual Studio 中的 NuGet 包管理器 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 并将其推送到预发布源。
- 使用 Visual Studio 中的 NuGet 包管理器安装 Foo.1.0.0-preview.20200207.2。
- Foo.1.0.0-preview.20200207.2 未出现在主要提要中。
解决方案
在 LeoLiu-MSFT 的帮助下,问题似乎与 Visual Studio 中同时提供上游源(Prerelease)和主要源(Primary)有关。我从 VS 中删除了 Prerelease 提要,它起作用了。
由于在此 StackOverflow 答案末尾发现了一个解决方法建议,我以这种方式设置了 Visual Studio,这将允许我在 NuGet 包管理器中查看未缓存的上游包:https ://stackoverflow.com/a/56196158/4183606
在删除上游源(在我的情况下为预发布),然后运行 powershell 命令以针对主要提要安装预览版本后,它似乎迫使主要提要在上游提要中查找它没有的版本然后缓存它。
推荐阅读
- r - 在 R 中编写这个嵌套 for 循环的更好方法是什么?
- git - 将函数源代码添加到源代码控制存储库时如何正确处理 local.settings.json 文件中的机密
- delphi - Delphi Firemonkey Frames - 如何获取框架使用的事件OnEnter和OnExit
- scala - 为什么火花数据帧上的“withColumn”转换不检查外部列表中的记录?
- javascript - React/Redux 在组件级别链接异步 thunk 操作
- html - 付费视频平台 vs HTML5
- python - Tensorflow tf.scatter_update 不更新浮点值
- php - 非英文字符 utf-8 问题
- python-3.x - distance.euclidean() 缺少“u”和“v”的问题
- architecture - 每当其依赖项之一发生更改时更新nuget包?