【发布时间】:2012-10-19 07:32:52
【问题描述】:
我有一个第 3 方 C++/CLR 程序集。当我右键单击 dll 时,版本选项卡显示 5.32.1,但当 ILSpy 中的元信息显示 5.0.0 时。为什么会有这种差异?哪个是正确的?
【问题讨论】:
标签: clr assemblyversions ilspy
我有一个第 3 方 C++/CLR 程序集。当我右键单击 dll 时,版本选项卡显示 5.32.1,但当 ILSpy 中的元信息显示 5.0.0 时。为什么会有这种差异?哪个是正确的?
【问题讨论】:
标签: clr assemblyversions ilspy
在 Windows 资源管理器的属性选项卡中显示的文件版本对应于 .NET 程序集 AssemblyInformationalVersion 属性。 AssemblyVersion 是一个独立的东西。
当然,两者都不比另一个更正确,开发者可以独立设置。
对于AssemblyVersion,当前的做法似乎大致是“具有相同major.minor 版本的程序集应该是兼容的”,但实际上并没有强制执行此规则。
必要的更正:实际上,当前 CLR 程序集绑定强制执行的策略是 整个 程序集版本应该匹配以便可加载,因此兼容的程序集应该具有 相同 程序集版本。更多主题:What are differences between AssemblyVersion, AssemblyFileVersion and AssemblyInformationalVersion?
【讨论】:
AssemblyInformationalVersion 似乎被忽略了,并且可能只存在于属性选项卡显示中。似乎很奇怪。