Side-by-Side Support
并行支持
.NET允许你在同一个进程里使用一个程序集的多个版本。对于企业服务应用程序也是如此。使用regsvcs.exe的默认选项配置一个程序集的多个版本时,总是会为应用程序创建一个新的服务组件配置。
客户端应用程序将使用编译该客户端时所使用的版本,因为其版本号已经被记录在客户端程序集的元数据中。为了使用一个不同的版本,和其他种类的.NET应用程序一样的版本规则依然适用:可以使用应用程序配置文件或者发布者策略程序集。
如果在一个企业服务应用程序使用同一个程序集的多个版本,那么这些版本的程序集必须在物理上也是存在的。多个版本可以通过把它们放到全局程序集缓存(Global Assembly Cache/GAC)内而共存。如果不使用GAC,你必须自己实现一个目录结构来
管理多个程序集版本。当然,如果不是所有版本的程序集都存在,那会导致很多问题。使用了一个不存在的版本的客户端会无法运行,要建立应用程序代理也是不可能的。
应用程序配置文件和发布者策略
对于那些共享的程序集,版本策略是一个非常重要的方面。默认情况下,客户端应用程序使用在其编译时使用的共享程序集的版本。如果要使用共享程序集的另外一个版本,你可以在应用程序配置文件中通过<bindingRedirect>定义需要的版本号。与此不同,一个共享程序集的发布者也可以规定所有应用程序都必须使用一个新版本。这可以通过创建一个发布者策略程序集来实现。一个发布者策略程序集必须被安装在GAC中,并且仅包含一个配置文件。一个应用程序也可以选择在应用程序配置文件中设置<publisherPolicy apply="no" />来忽视发布者策略。






