【问题标题】:Nuget dependency seems to be overriden for lower version SOMEHOWNuget依赖似乎被较低版本覆盖
【发布时间】: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


【解决方案1】:

我找到了解决方案,但没有找到解释。

如果是项目,则取决于项目文件中设置的 DotNet 或 DotNetCore 的 nuget 包:

  <PreserveCompilationContext>false</PreserveCompilationContext>

然后版本依赖又开始正常工作了。

【讨论】:

    猜你喜欢
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 2018-01-13
    • 2021-10-13
    • 1970-01-01
    相关资源
    最近更新 更多