如何配置程序集的版本策略2011-07-23 csdn博客 博文视点本文节选自《.NET程序员面试指南》一书在实际工作中,版本策略被使用得比较多,本节将借 助分析这个面试题来简要介绍程序集的版本策略和配置方法。所涉及到的知识点版本策略 的基本原理程序集版本策略的配置分析问题当一个程序集通过名字、版本、文化 和公钥进行加载时,CLR允许程序员指定该程序集的哪些版本可以代替目前版本进行加载。这些都是通过 版本策略来实现的。所谓的版本策略,就是一个程序集版本的重定向,把加载当前这个版本定向到加载可 替代的版本。版本策略可以在以下三个级别上进行配置:应用程序策略发行者策略计算机策略这三个级别的版本策略都可以通过XML文件来进行配置。现在笔者来分别介绍 。1.应用程序策略应用程序策略可以在应用程序配置文件中进行配置,应用程序配置文 件位于应用程序目录下。对于.EXE应用程序,其配置文件由exe文件名加上.config后缀名构成,例如一个 test.exe的应用程序,其配置文件就是test.exe.config。而对于任何一个Web应用程序来说,其配置文件 的文件名都是web.config。版本策略都记录在配置文件的assemblyBinding节点下。代码2-7是一 个应用程序的配置文件例子,这里只选取了本节所关心的版本策略部分内容。代码2-7 VersionStrategy:Web.Config<?xml version="1.0"?>
<configuration>
<runtime>
<assemblyBinding>
<!--对这个程序集进行版本重定向-->
<dependentAssembly>
<assemblyIdentity
name="NET.MST.Second.Compile"
publicKeyToken="60c29e5f0af3e9bb">
</assemblyIdentity>
</dependentAssembly>
<!--重定向的策略-->
<bindingRedirect oldversion="0.0.0.0-12.2.2.2"
newversion="12.3.0.0">
</bindingRedirect>
</assemblyBinding>
</runtime>
</configuration>
在代码2-7这个配置文件中,指定了NET.MST.Second.Compile,60c29e5f0af3e9bb这个组件的版本策略 ,这个策略将0.0.0.0到12.2.2.2之间的所有版本重定向到12.3.0.0版本上。2.发行者策略发行者策略是针对那些被放入全局程序集缓存(GAC)中的程序集,发行者策略以一个和代码2-6 同样格式的配置文件形式绑定到程序集上,被一同放入GAC中。发行者策略配置文件的文件名非常古怪, 它是这样的一个字符串:主版本号.次版本号.程序集名.dll。正因为如此,一个程序集的每个主版本/次 版本号只能有一个发行者策略。