在项目的 paket.dependency 文件中,我找到了这些行:
nuget Microsoft.AspNet.Mvc == 5.2.6
nuget Microsoft.AspNet.Razor == 3.2.6
nuget Microsoft.AspNet.WebPages == 3.2.6
我检查了official documentation没有成功。
我的猜测是 ==
可以修复版本号,但为了实现这一点,我们可以直接编写 nuget Microsoft.AspNet.Mvc 5.2.6
。
运算符==
的含义是什么?
最佳答案
这称为“仅使用此版本”约束。它确实应该是 paket.dependency 引用的一部分,但它可以在:https://fsprojects.github.io/Paket/nuget-dependencies.html 中找到。
我将尝试用一个例子来解释它。想象一下您依赖于包 A 和 B。
A 和 B 都依赖于 C,但在各自的 nuget 包依赖项声明中指定:
A 依赖于 C 版本 >= 1.2.3 但 < 2.0
B 依赖于 C 版本 >= 2.0
在这种情况下,paket 将无法找到同时适合 A 和 B 的 C 的通用版本。
我在某些项目中看到过这样的情况,其中存在对像 A 这样的包的依赖,该包声称它无法与 >= 2.0 的包 C 版本一起使用。但是,在实际测试时,A 在最高版本上工作得很好因此可以添加一行强制 paket 覆盖 A 对 C 的版本约束:
nuget C == 2.0
当然,长期解决方案是要求 A 的维护者更新他们的 nuget 依赖声明。
关于paket - 在 paket.dependency 文件中,运算符 `==` 的含义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56687895/