在.net框架中和CLR运行时钟引用,如使用程序集的强命名时就会使用. 按照我的理解,你所使用的库如log4net,常见的有2.0和4.0的,那么你下载的库是否是你工程中用的库,就要看这个程序集版本号. 比如我自己写了一个库,叫Tool,程序集版本号是1.0.0.0,然后Work工程引用了这个dll.现在Tool更新了,程序集版本号变成了2.0.0.0,那么Work在不修改的情况下就不可以引用到2.0.0.0.
专门显示在windows文件系统中,每次发布程序集时,如果是每天更新,应该只更新文件版本号,不要频繁更新程序集版本号,防止其他引用的人每天要修改. 应该尽量只更新文件版本号,这是微软开发者的初衷.
标准版本号物理形式表示为用句点隔开的四段数字,如下面的代码示例所示。 ...
实际使用中,我们一般只用到前面三段。即 ..
而且会分外部版本号和内部版本号: 2.2.2 1.1.0
程序显示的应该是外部版本号。 程序编译前用当前的内部版本号更新 AssemblyVersion 属性的 build number 段,非程序文件(如资源等)在打包、备份、打标签时统一使用内部版本号。
每个Assebmly包含三个Version AssemblyFileVersion :存储在win32资源中, CLR不关心这个版本号, AssemblyInformationnalVersion :存储在win32资源中, CLR不关心这个版本号,此版本号用来表示包含 Assembly的产品的版本 AssemblyVersion: 存储在AssemblyDef manifest metadata table中,CLR会使用这个版本号
工具的支持: CSC.exe和AL.exe在每次build时可以自动增加AssemblyVersion, 但要慎用.改变一个Assembly的 AssemblyVersion会导致引用这个Assembly的其它Assembly无法工作.
在VS会为每一个.net Porject生成 AssemblyInfo.cs 可在其中设置相关的信息. [assembly: AssemblyVersion(”1.0.0.0″)] [assembly: AssemblyFileVersion(”1.0.1.0″)] 如果使用[assembly: AssemblyVersion(”1.0.*”)], 在每次程序修改后build或rebuild后, assembly的 AssemblyVersion的Build Number和 ReversionNumber和会自动增加.ReversionNumber每次都变, Build Number随日期的变化而变化.
推荐工具Version Editor.从”工具->扩展和更新”下载,安装后从”视图->其他窗口->Version Editor”打开. 地址:https://visualstudiogallery.msdn.microsoft.com/9d7f7b91-3577-4e61-bb3f-a8dc0c453f75
以上文章综合于下述文章: http://www.cnblogs.com/langu/archive/2013/03/25/2980971.html http://bbs.csdn.net/topics/230066719