gpt4 book ai didi

c# - Nuget 版本控制 : Wildcard vs unspecified component

转载 作者:行者123 更新时间:2023-12-02 02:43:42 26 4
gpt4 key购买 nike

阅读Nuget version documentation ,我不明白两者之间的区别:

<PackageReference Include="ExamplePackage" Version="6.1" />

和:

<PackageReference Include="ExamplePackage" Version="6.1.*" />

如果实际的软件包版本是6.1.5。看起来两者都满足要求(6.1.5 大于 6.16.1.0)。为此,我假设缺少的组件(例如上面第一个示例中的第三个组件)出于版本比较的目的隐含为 0

有人可以解释一下语义差异(如果有的话)吗?

最佳答案

If the actual package versions is 6.1.5. It seems like both meet the requirement [...]

是的,他们确实如此。

I am assuming for this purpose that missing components [...] is implied to be 0 for the purposes of version comparison.

正确,6.16.1.0 是相同的。

Can someone explain the semantic differences, if any?

在第一个示例中,版本 6.1 意味着可以使用从 6.1.0 (含)开始的所有软件包版本,这意味着 6.1.06.1.5,还有 7.3.8-pre42。由于Lowest Applicable Version规则,当有多个包符合条件时,将使用最低版本。

第二个示例有所不同,它使用 float 表示法,这意味着6.1.*允许以6.1开头的所有版本,但是补丁预发布版本可以是6.1.56.1.9986.1.1-pre42。因此,您将排除 6.1.0 以下以及从 6.2.0 及以上版本开始的所有版本,对于预发行版也是如此。在这里,Floating versions应用规则,恢复最高匹配版本。

总而言之,这两种表示法并不等效,第一个表示包含在内的起始版本,而第二个仅允许补丁和预发行号上带有通配符的特定版本。

关于c# - Nuget 版本控制 : Wildcard vs unspecified component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63139157/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com