[英]NuGet Package version not matching reference version
诀窍是你要比较不同的东西。
Nuget会显示包含其包版本号的可用包。 这是包所有者在nuget spec文件的包version
字段中声明的内容 。 在nuget完成将这些外部文件提取到项目之后,此版本没有任何意义或影响。 它与包装中的确切含义没有任何直接关系。
另一方面,引用属性查看dll,而不关心它来自哪个包。 显示的版本是在编译期间使用代码中的AssemblyVersionAttribute
属性嵌入DLL中的版本号 。 这是在运行时期间实际用于查找和加载引用逻辑的版本。
通常,如果包版本和dll版本匹配会有意义,但没有硬性规则来强制执行此操作。 它会变得棘手,即使它确实如此,因为一个包可能包含许多dll和其他文件,每个文件版本不同。
关于这个具体案例,我没有任何信息,为什么业主已经做出了这种差异,也没有根据他们的版本逻辑。 如果没有记录,那么您可以向他们发送消息并询问其含义。
好处是,除了一点混乱之外,如果dll做了你期望它做的事情并通过质量保证,那么包中的版本号差异在实践中无关紧要。
编辑:请注意,只有第3个数字的版本号差异对于使用语义版本控制实践的库来说很常见,其中第三个组件凹凸表示不间断的错误修复版本。 保持相同的AssemblyVersion
(例如:Newtonsoft.Json的“8.0.0”)允许就地升级,而无需重新编译引用具有相同major-minor(8.0.0,8.0.1,8.0.2)的先前版本的所有程序集。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.