微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么要区分 AssemblyFileVersion 和 AssemblyVersion

如何解决为什么要区分 AssemblyFileVersion 和 AssemblyVersion

我们知道一个程序集有三个与其关联的版本号,分别是AssemblyFiLeversion、AssemblyinformationalVersion 和AssemblyVersion

我得到了 AssemblyinformationalVersion 的想法 abd 我理解这样一个事实,即当 CLR 加载一个程序集时,它只关心 AssemblyVersion,并且根据这篇文章的回答 https://stackoverflow.com/a/802038/9623401:

AssemblyFiLeversion 旨在唯一标识单个程序集的构建

但是它们都是Major.Minor.Build.Revision格式,那AssemblyFiLeversion和AssemblyVersion不是一回事吗?

假设我从头开始构建一个程序集,几天后,工作似乎完成了,所以我将AssemblyVersion更改为1.0.0.0,然后我将代码提交到构建服务器,构建服务器应该更新内部版本号,因此存储库中程序集的 AssemblyVersion 将是 1.0.1.0,并且 AssemblyFiLeversion 也应该是 1.0.1.0

我的理解正确吗?如果不正确,如果有人可以根据我上面的情况进行解释,我将不胜感激?

解决方法

.NET 使用您提到的 AssemblyVersion 来加载正确的程序集。程序集文件版本只是 Windows 资源管理器使用的文件版本。 .NET 不以任何方式使用它。因此,如果您进行更改,例如在日常构建中,您通常只想增加程序集文件版本,而不是程序集版本,以避免现有引用中断。 这个链接给出了很好的解释: https://docs.microsoft.com/en-us/troubleshoot/visualstudio/general/assembly-version-assembly-file-version

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。