阅读Nuget 版本文档,我不明白两者之间的区别:
<PackageReference Include="ExamplePackage" Version="6.1" />
Run Code Online (Sandbox Code Playgroud)
和:
<PackageReference Include="ExamplePackage" Version="6.1.*" />
Run Code Online (Sandbox Code Playgroud)
如果实际的软件包版本是6.1.5. 似乎两者都满足要求(6.1.5大于6.1和6.1.0)。为此,我假设缺少组件(例如上面第一个示例中的第三个组件)是0为了进行版本比较。
如果有的话,有人可以解释语义差异吗?
如果实际的包版本是 6.1.5。似乎两者都符合要求 [...]
是的,他们这样做。
为此,我假设缺少的组件 [...] 隐含为 0 以进行版本比较。
正确的,6.1并且6.1.0是相同的。
如果有的话,有人可以解释语义差异吗?
在您的第一个示例中, version6.1意味着6.1.0可以使用从(inclusive)开始的所有包版本,这意味着6.1.0, 6.1.5,但也7.3.8-pre42. 由于最低适用版本规则,当有多个包符合条件时,将使用最低版本。
第二个示例不同,它使用浮动符号,这意味着6.1.*允许以 开头的所有版本6.1,但补丁和预发布版本可以是任何类似6.1.5,6.1.998或 的版本6.1.1-pre42。因此,您排除以下所有版本6.1.0并从6.2.0以上版本开始,也适用于预发行版。在这里,浮动版本规则适用,恢复最高匹配版本。
总而言之,这两种表示法并不等效,第一种表示包含起始版本,而第二种表示仅允许特定版本在补丁和预发布编号上带有通配符。
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |