【问题标题】:What is the search pattern NuGet uses called?NuGet 使用的搜索模式叫什么?
【发布时间】:2016-02-26 00:33:18
【问题描述】:

阅读 SemVer 规范,这实际上并不是 SemVer 的一部分。那么 NuGet 使用的搜索语法究竟叫什么?

1.0  = 1.0 ≤ x
(,1.0]  = x ≤ 1.0
(,1.0)  = x < 1.0
[1.0] = x == 1.0
(1.0) = invalid
(1.0,) = 1.0 < x
(1.0,2.0) = 1.0 < x < 2.0
[1.0,2.0] = 1.0 ≤ x ≤ 2.0
empty = latest version.

另外,是否有一个 .NET 类来处理它,以便我可以使用这种语法搜索包?

【问题讨论】:

    标签: .net nuget semantic-versioning


    【解决方案1】:

    Nuget package versioning 是在 SemVer 1.0.0 的基础上松散建模的,后来更新为 SemVer 2.0.0,这是当前推荐的标准。虽然该工具确实接受一些非 SemVer 版本控制方案,但 OP 中包含的表格显示了在 Nuget 中用作依赖版本选择器的 Version Ranges and Wildcards 可接受的语法。

    尽管有人提出了defined range spec 的建议,但几乎没有一致意见使用什么形式以及相当可靠的论据来阻止 SemVer 参与该业务。基本上有两个主要阵营,一个建议应该使用集合表示法(Nuget 的当前语法),另一个更喜欢运算符表达式序列(例如 >=1.0.0 &&

    请注意,该表以运算符序列的形式描述了集合符号,任何绿色程序员都可以理解。在内部,大多数工具在指定范围内构建一组候选,然后应用一个或多个启发式或set algebra,或数学和启发式的某种组合来选择依赖版本。

    如果您需要对此事有任何进一步的启发,请告诉我。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-23
      • 2011-02-20
      • 2016-09-13
      相关资源
      最近更新 更多