在.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″)]