【发布时间】:2019-02-09 15:03:47
【问题描述】:
我对 Nuget 依赖项有一个奇怪的问题。我有一个项目作为 nuget 包,它针对另一个项目也作为 nuget 包。即使一切都说版本 1.2.3,它也会变成 1.2.2.2。
我在 3 和 4 编号版本之间切换可能是错误的:
1.2.3
1.2.2.2
1.2.2.1
1.2.2
1.2.0
1.1.9
它表现得好像对 1.2.3 的依赖不会被识别为 1.2.3,而是 1.2.3.0 不会被识别(?),然后下一个更低的是 1.2.2.2。
但要振作起来,我觉得可以,3/4版本格式有问题,所以我转向4编号格式并在1.2.3之后又推了两个版本:
1.2.5.1
1.2.4.1
1.2.3
当我制作 1.2.4.1 版本时,一切都开始运行良好,项目所需的 1.2.4.1 也被获取并使用 1.2.4.1 构建。
但是当我推送 1.2.5.1 版本时一切都变得疯狂了,该项目已更新为获取 1.2.5.1,但在构建期间它已安装但由于某种原因被覆盖为 1.2.4.1,我真的不知道现在为什么?
在构建文件 xxx.deps.json 之后是这个覆盖:
"GreenSuperGreen.Benchmarking.NetStandard/1.2.5.1": {
"dependencies": {
"Concurrent.FastReflection.NetStandard": "1.0.1",
"GreenSuperGreen.NetStandard": "1.2.5.1",
"System.Collections.Immutable": "1.5.0"
},
"runtime": {
"lib/netstandard2.0/GreenSuperGreen.Benchmarking.NetStandard.dll": {
"assemblyVersion": "1.2.4.1",
"fileVersion": "1.2.4.1"
}
}
},
【问题讨论】:
-
我在文档中没有找到任何可以解释版本覆盖的内容。
-
你实际阅读过,应该看到这四个部分的版本号不应该再使用了。
-
本文档也使用了四号版本的例子。该文档并不暗示将只允许三个数字版本并禁止四个数字,新的 nuget 版本将不得不在相当长的一段时间内处理向后兼容性。版本规范化和 3 对 4 数字格式也不能解释这些问题。似乎它发生在构建过程的其他地方,版本没有标准化但明显被覆盖。
-
请不要在没有任何证据的情况下暗示我是懒惰或骗子。谢谢...
标签: .net .net-core dependencies versioning nuget-package