美文网首页Asp.net开发Amazing .NET.NET
你应该知道的程序集版本

你应该知道的程序集版本

作者: 天天向上卡索 | 来源:发表于2018-07-19 16:06 被阅读11次

程序集版本

一个程序集会有三个版本,每个版本都是做什么的呢,我们来看一下,每个版本号的用途及正确用法:

版本号

示例版本号:

Major(主版本号) Minor(次版本号) Build(内部版本号) Revision(修订号)
2 3 719 5

前两个编号构成了公众对版本的理解,公众会将这个版本号视为这个程序集的2.3版本,第三个编号719时程序集的build号,如果公司每天都生成程序集,那么每天都应该递增这个build版本号,最后一个5指出当前build的修订次数,如果因为某个原因,公司某一天必须要生成多次程序集(可能是为了修复一个造成其他什么事情都干不了的hit bug),revision 号就应该递增, Microsoft 采用的就是这个版本编号方案,强烈建议你也采用。

AssemblyFileVersion

这个版本号存储在 Win32 版本资源中,它仅供参考,CLR既不检查也不关心这个版本号。通常,可以先设置好版本的 major/minor 部门,这是希望公众看到的版本号,然后每生成一次就递增 build 和 revision 部分。

理想情况是 Microsoft 的工具(比如csc.exe 或者 al.exe)能够自动更新 build 和 revision(根据生成时的日期和时间)。
在 windows 系统资源管理器中能看到这个版本号,对客户系统进行故障诊断的时候,就可以根据它识别程序集版本是多少

AssemblyInformationVersion

这个版本号也存储在 Win32 版本资源中,同样仅供参考,CLR既不检查也不关心。
这个版本号的作用在于指出该程序集的产品的版本。例如,产品的2.0版本可能包含几个程序集,其中一个程序集标记为版本1.0,因为它是新开发的,在产品的1.0版本中不存在。

通常,可以设置这个版本号的 major 和 minor 部分来代表产品的公开版本号,以后每次打包所有程序集来生成完整产品,就递增 build 和 revision 部分。

AssemblyVersion

这个版本号存储在 AssemblyDef 清单数据中,CLR 在绑定到强命名程序集时会用到它,这个版本很重要,它唯一标识了程序集。开始开发程序集时应该设置好 major/minor/build/revision 部分,而且除非要开发程序集的下一个可部署版本,否则不应变动。如果程序集A引用了强命名程序集B,程序集B的版本会嵌入程序集A的 AssemblyRef 表。这样一来,当CLR需要加载程序集B时,就准确地知道当初生成和测试地是程序集B地哪个版本。

Reference

  • 《CLR via C#》第四版 -- 清华大学出版社

相关文章

  • 你应该知道的程序集版本

    程序集版本 一个程序集会有三个版本,每个版本都是做什么的呢,我们来看一下,每个版本号的用途及正确用法: 版本号 示...

  • EXUIの菜单使用

    .版本 2.支持库 exui .程序集 窗口程序集窗口用户设置.程序集变量 普通菜单, 菜单EX.版本 2.支持库...

  • UntiyAssemblyDefinition程序集

    Assembly Definition 程序集定义 软件版本 Unity 2019.1.0a11 创建 程序集包裹...

  • 易语言嵌套循环的意思

    .版本 2 .程序集 程序集1 .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行 .局部变量 ...

  • 第九课-登录软件2

    这课重点讲的是综合前面所学。无难点 需要注意的是,ASCII表的应用 .版本 2 .程序集 窗口程序集_启动窗口 ...

  • git-flow

    版本控制对于程序开发的重要性不言而喻。现在主流应该就是git了。 做开发的同学们应该都知道需要使用版本控制,但是在...

  • C#程序集相关的概念

    程序集包含:类型元数据(描述在代码中定义的每一类型和成员,二进制形式)。程集元数据(程序集清单、版本号、名称等)、...

  • 设计模式

    1. Android程序员,你应该知道的设计模式

  • uni星茫V3.0更新uni-app多端小程序源码丸子插件wor

    说明 首先得说明下该版本应该是2.0的,不知道为啥微信小程序后台那边大版本是3.0,为了方便直接跳过了2.0.写成...

  • 让工作学习效率翻倍的工具

    GitHub 程序员都应该知道这个工具。首先作为程序员它是个代码托管及版本控制平台。无论是个人开发还是团队协作,G...

网友评论

    本文标题:你应该知道的程序集版本

    本文链接:https://www.haomeiwen.com/subject/cvmtmftx.html