【问题标题】:what if I have duplicate nuget packages in multiple sources?如果我在多个来源中有重复的 nuget 包怎么办?
【发布时间】:2018-03-17 19:12:02
【问题描述】:

如果我的 nuget 文件中有 2 个源(内部源),并且在这两个源中我有一个具有相同名称和版本的包,那么 nuget 将从哪个源中提取包?会是第一个列出的来源吗?

通常没关系,但假设我有两个名称和版本完全相同的包,但包本身实际上是不同的。

【问题讨论】:

  • “2 个来源”到底是什么意思?请举个例子。 NuGet.org 上的包必须具有唯一的包 ID,因此不清楚您在问什么。
  • 这些是不公开的内部包
  • 好的,“内部”是什么意思?具体一点。
  • 您不能依赖 NuGet 包源的顺序。对于较旧的 NuGet 2,包源是按顺序尝试的,但对于 NuGet 3 及更高版本,它们是并行尝试的,因此您不能依赖排序。

标签: .net windows visual-studio nuget nuget-package


【解决方案1】:

如果我在多个来源中有重复的 nuget 包怎么办?

当你打开 NuGet 包管理器设置,工具->选项->NuGet 包管理器->包源,你会注意到包源有上下箭头:

NuGet 包管理器将优先搜索包源列表顶部的包。

但是,这个优先级很容易被最快响应和不同版本的顺序打破。就像 Matt 说的“NuGet 3 及更高版本是并行尝试的”。因此,当您的一个包源的反应明显快于其他包源时,优先级将被打破,将使用最快响应的包源。

此外,将优先考虑包含更高版本包的包源。

作为建议,由于您的包本身实际上是不同的,我建议您可以给它们起不同的名称或不同的版本。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-01
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多