dw做网站怎么让文字移动,网站建设及照片使用保密协议,专门做餐饮运营的网站,wordpress手机浏览【题外话】 一直以来都对.NET项目中的几个版本号#xff08;AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersion#xff09;以及版本号中的Revision和Build有疑问#xff0c;今儿抽了点时间看了几篇文章#xff0c;整理一下与大家一起分享下。 【一、Ass… 【题外话】 一直以来都对.NET项目中的几个版本号AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersion以及版本号中的Revision和Build有疑问今儿抽了点时间看了几篇文章整理一下与大家一起分享下。 【一、AssemblyVersion与AssemblyFileVersion】 众所周知.NET项目属性中可以设置两种版本号一种叫程序集版本AssemblyVersion一种叫文件版本AssemblyFileVersion在微软的知识库见相关链接1中有一篇文章提到了这两个版本号的区别我大致翻译一下。 Assembly Version这是在.NET Framework中编译和运行时使用的版本号使用该版本号定位和加载指定程序集。当你在你的项目中引用了指定的程序集其版本号将会嵌入到你的项目中。在运行时CLR通过该版本号加载指定程序集。注意仅当程序集使用强命名时才会使用程序集名称、公钥、语言信息以及该版本号查找指定程序集否则只会根据文件名进行查找。 Assembly File Version这是在文件系统中给文件的版本号会在Windows资源管理器中显示。但是在.NET Framework引用类库时从来不会用到这个版本。 我们可以创建两个项目试试对于引用没有使用强命名程序集的项目不论修改Assembly Version还是修改Assembly File Version都不会出现任何错误而对于引用了使用强命名程序集的项目一旦引用的程序集的Assembly Version修改则会出现如下图所示的错误导致程序无法运行而修改Assembly File Version则不会出现任何错误。 所以 在知识库的文章中也给出了建议的方法 如果您在为一个应用程序构建一个很多开发者都在引用的基础程序集并且这个程序集更新速度非常快比如一天一次之类的而且这个程序集还是强命名的那么您每次更新完程序集后所有的开发者都需要重新更新引用。这样做非常繁琐并且还容易引用出错。所以对于这种情况更好的办法是固定好Assembly Version而只修改Assembly File Version即使用后者来表示最新的版本号。在这种情况下开发者们不需要更新引用而仅仅只需要把新的程序集文件覆盖到引用目录下就可以了。在中间或最后发布的版本中为了更有意义可以更新Assembly Version使Assembly File Version与Assembly Version近似。 在相关链接2的文章中作者也给出了修改Assembly Version的情景 1、当程序集为了维护而更新时为了向后兼容一定不要修改Assembly Version。 2、在程序集有重大修改时一定要修改Assembly Version。 【二、AssemblyInformationalVersion】 除了上述两种版本号外其实还有一种版本号可以自己在AssemblyInfo.cs文件中添加那就是AssemblyInformationalVersion从名字就可以看出来这个版本号更大的意义是版本的信息而不仅仅是数字的描述比如可以设置为如下的版本信息之类的。 [assembly: AssemblyInformationalVersion(1.0 RC)] AssemblyInformationalVersion与AssemblyFileVersion一样都是可以在Windows资源管理器中显示的换言之其都是存储在Win32版本资源中的。所以如果不设置AssemblyInformationalVersion的话默认在文件属性里显示的“产品版本”就是AssemblyFileVersion而设置了AssemblyInformationalVersion以后才会显示AssemblyInformationalVersion设置的内容。如下图左边为未设置AssemblyInformationalVersion右边为设置了AssemblyInformationalVersion。 【三、Build与Revision】 对于.NET的项目版本号是由Major.Minor.Build.Revision构成的通常被称作主要版本、次要版本、内部版本以及修订号。在MSDN上有专门对版本号说明的内容见相关链接3比较重要的摘抄如下 Major名称相同但主要版本号不同的程序集不可互换。 更高版本号可能表明大幅重写无法假定向后兼容的产品。Minor如果两个程序集的名称和主要版本号相同而次要版本号不同这指示显著增强但照顾到了向后兼容性。 该较高的次要版本号可指示产品的修正版或完全向后兼容的新版本。Build生成号的不同表示对相同源所作的重新编译。 处理器、 平台或编译器更改时可能使用不同的生成号。Revision名称、主要版本号和次要版本号都相同但修订号不同的程序集应是完全可互换的。 更高修订号可能在修复以前发布的程序集安全漏洞的版本中使用。 程序集的只有Build或Revision不同的后续版本被认为是先前版本的修补程序 (Hotfix) 更新。 在《CLR via C#第3版》一书中也提到了版本号的建议使用方式 如果公司每天都要生成程序集那么每天都应该递增这个build号。最后一个编号指出build的修订次数。如果因为某个原因公司某一天必须生成两次程序集可能是为了修复一个重大的bugrevision号就应该递增。 Microsoft使用的就是这个版本编号方案而且建议你也是用它。 【相关链接】 How to use Assembly Version and Assembly File Versionhttp://support.microsoft.com/kb/556041/en-usAssembly Versioning in .NEThttp://www.danielfortunov.com/software/%24daniel_fortunovs_adventures_in_software_development/2009/03/03/assembly_versioning_in_netVersion 类http://msdn.microsoft.com/zh-cn/library/system.version.aspx 原文地址http://www.cnblogs.com/mayswind/p/3387680.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注