dnt每次发布新版本时,公布出来的版本号都是3位数以上,拿3.6.711这个版本号的代码来说,几乎每一个dll上都是统一的版本号命名:
对于一个成熟的产品来说,统一一致的版本号命名有以下的好处:
1、看版本号的命名是否统一,能表现出一家公司内部的技术管理是否统一。如果很乱,那么这个产品从表面上看就已经是失败了。
2、对于发放在市面上的版本,通过统一的版本号能快速定位bug问题等。
3、对于公司内部,开发的版本一定是不只一个团队进行开发的,有可能每个团队负责一个版本的维护等,那么统一的版本号能针对哪些功能更新时的准确性。即统一的内部功能管理。
从代码上看,dnt使用了全局常量去定义,然后在每个类库的AssemblyInfo.cs文件上使用定义的常量去配置。
常量卸载Discuz.Common\Utils.cs文件上:
在AssemblyInfo.cs文件上这样去配置:
而且,从Utils.cs的定义上看,把每段的版本号都独立出来写,这样的好处也是非常方便的,比如:版本的授权上,我不用直接反射读取这些信息,直接读取常量即可。