程序集版本号,文件版本号及发布版本号管理

程序集版本号:

在.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随日期的变化而变化.

有没有什么工具可以显式地设置一个solution中所有的project的AssemblyVersion?

推荐工具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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏闻道于事

Linux-看完这篇Linux基本的操作就会了

2733
来自专栏mySoul

微信小程序自定义组件(二)

两个<custom-ul>以及<custom-li>两个组件都为自定义组件,如果进行通信会非常的难以操作,至此通过relations完成子父组件的定义,简化通信...

2493
来自专栏LanceToBigData

JavaWeb(一)Servlet中乱码解决与转发和重定向的区别

前言   前面其实已经把Servlet中所有的内容都介绍完了,这篇讲补充一点乱码和重定向与转发之间的区别! 一、request请求参数出现乱码问题 1.1、ge...

28710
来自专栏风中追风

分布式进阶__如何用zookeeper 实现分布式锁

        分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。

40116
来自专栏逆向技术

框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解)

          框架原理第一讲,熟悉常用的设计方式.(以MFC框架讲解) 一丶什么是框架,以及框架的作用 什么是框架?   框架,简而言之就是把东西封装好了...

23811
来自专栏小程序·云开发专栏

云函数之间互相调用实现邮件发送

很多时候,我们会面临在小程序的后台实现多重功能,比如用户管理、日志分析、数据排序等,不同的功能之间还会相互调用。如果把这些功能都写到一个云函数里,会造成云函数逻...

7.4K2
来自专栏IT派

Python 的异步 IO:Asyncio 简介

所谓「异步 IO」,就是你发起一个 IO 操作,却不用等它结束,你可以继续做其他事情,当它结束时,你会得到通知。

1153
来自专栏游戏开发那些事

【Linux程序设计】之进程控制&守护进程

这个系列的博客贴的都是我大二的时候学习Linux系统高级编程时的一些实验程序,都挺简单的。

1802
来自专栏python学习之旅

Python笔记(十三):urllib模块

(一)      URL地址 URL地址组件 URL组件 说明 scheme 网络协议或下载方案 net_loc ...

2986
来自专栏蓝天

log4j日志文件路径设置

假设有如下标准化的目录结构: $HOME |-- log |-- conf |-- bin |-- lib |-- data jar包放在l...

1093

扫码关注云+社区

领取腾讯云代金券