企业库包含很多的程序集,除去Unity模块,企业库的每个程序集的名称都以“Microsoft.Practices.EnterpriseLibrary”开头。另外,其他的模块都可能会依赖企业库的Common程序集。使用一个模块的应用也可能会需要其他模块的程序集,例如使用Caching模块,有可能会需要Data Access模块的程序集。
在应用中使用企业库,可以用下面的两种方式来部署企业库的程序集。
- 在应用程序的目录中,作为应用的私有程序集。
- 放在文件系统的共享目录,或者是GAC中。
一、准备和版本
如果编译企业库的源代码,默认生成的程序集是没有签名的。你就不能将他们放入GAC,你就不能享受签名程序集的好处。
1.1使用XCopy
你可以不使用签名,也不用将企业库的程序集部署到GAC中。你可以只将他们放在应用程序的目录中。对于这种简单的部署方式,你可以使用xcopy将应用的程序集和企业库的程序集一起安装在目标计算机。但是,如果在目标计算机上有多个应用都在使用企业库,你就会在每个应用的目录下存放一份企业库程序集的拷贝。
1.2使用GAC ( Global Assembly Cache )
另外,你可以对企业库程序集进行签名,这就保证他们的名字全局唯一,并且有了版本。如果这么做,你就可以在多个应用使用企业库的情况下,将他们部署在共享的位置。例如,可以将企业库部署在GAC中,这样计算机的任何应用都可以使用企业库程序集。
可以使用下面的方式部署程序集到GAC中
- 拖拽,打开C:\WINDOWS\assembly目录,直接将签名的程序集拖入C:\WINDOWS\assembly目录。
- 使用GACUTILI.EXE,使用这个命令拷贝到C:\WINDOWS\assembly目录。
- 使用.NET FRAMEWORK的配置工具mscorcfg.msc
1.3版本
程序集签名之后,就有了版本和命名保护,可以部署在GAC中,供所有的应用来使用。
不推荐你在应用中直接使用企业库的命名空间,因为这样会造成和企业库的源码很难区分,建议你选择一个和你的项目相关的命名空间。
二、升级企业库的程序集
如果企业库提供了新的版本,你可以安装新版程序集。但是如果新版本对于特定的应用存在兼容性问题,你可以在GAC中安装新版本,并且配置一些应用使用GAC安装的新版本,其他存在兼容性的应用继续使用旧版本的企业库。
2.1升级私有程序集
如果企业库程序集作为一个应用的私有程序集来部署的话,你部署的时候只需要用新的dll代替旧版本的dll就可以了。
注意:你应用在升级之前拷贝一份旧版本的企业库程序集,万一出现兼容性问题的话,可以用旧版本的再替换回来。
2.2升级共享的程序集
升级共享程序集的最简单办法就是用新的dll替换GAC中的旧dll。默认的,CLR会自动加载主要版本和次要版本相同,但是内部版本和修订版本是最新的程序集,作为应用程序使用。因此,如果主要版本和次要版本号没有变化,在GAC中添加最新的程序集,会自动被所有的应用使用。
如果主要版本和次要版本有增加,或者是新版本对现有应用有兼容性问题,你可以修改默认的版本策略。在每个应用下面都以一个配置文件,在里面可以指定所使用的程序集的版本。在里面你可以指定没有兼容性问题的程序集使用新版本的企业库程序集。
知识点:主要版本,次要版本,内部版本和修订版本
.Net Framework 风格的版本号命名格式:
三、部分信任的环境
使用企业库3.0之前版本的应用要求有足够的权限,以便程序集可以在完全信任的情况下访问一些资源。最新版本的企业库,包括4.1你可以在部分信任的情况下使用企业库。
未完待续。。。。。。。。。。。。。。。。。。。。。。。。