我们知道程序集有三个与其关联的版本号,它们是AssemblyFileVersion、AssemblyInformationalVersion和AssemblyVersion。
我了解到,当CLR加载一个程序集时,它只关心AssemblyInformationalVersion,根据这个帖子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。
我的理解正确吗?如果不正确的话,如果有人能根据我以上的情况来解释的话,我会非常感激的。
发布于 2021-01-21 20:59:06
正如您提到的,AssemblyVersion被.NET用来加载正确的程序集。程序集文件版本只是Windows Explorer使用的文件上的版本。.NET没有以任何方式使用它。因此,如果您进行更改,例如在您的日常构建中,您通常希望只增加程序集文件版本,而不是程序集版本,以避免现有引用中断。这个链接给出了一个很好的解释:https://learn.microsoft.com/en-us/troubleshoot/visualstudio/general/assembly-version-assembly-file-version
https://stackoverflow.com/questions/65822541
复制相似问题