程序集版本控制
版本组成: 主版本号.次版本号.构建次数.修订号 四部分组成,
<major version>.<minor version>.<build number>.<revision>,
版本号在强名称程序集中才能显示出它的唯一性控制的,以下都是针对 强名称程序集 来阐述的。
程序集重定向:
1、应用程序级别:通过配置文件app.config/web.config中设置重定向元素
2、机器范围级别:于machine.config中(${.NET Install Path}\Config\Machine.config),
找到<runtime>元素节点中,进行版本重定向控制。
C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\mscorcfg.msc .NET框架配置工具
3、发布者策略:不同于1、2中的配置文件,它是程序集本身,其原理如下:不通过修改
app/web.config/machine.confg,而通过发布到GAC中的版本策略(一程序集),改变调用的
程序集的新的定向,其命名约定:policy.<major version>.<minor version>.<assemblyName>
举例:设MathLibrary.dll强名称程序集存在2版本: 1.1.2.2 和 1.1.3.3,
1、编辑策略文件 publisherpolicy.xml
2、生成策略程序集,使用al命令(C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\al.exe)
al /link:publisherpolicy.xml /out:policy.1.1.MathLibrary.dll /keyf:http://www.cnblogs.com/../myKey.snk /v:1.0.0.0
3、安装1.1.3.3版本的A.dll & policy.1.1.MathLibrary.dll 到GAC中。
此后所有对1.1.2.2的请求都会被转至1.1.3.3版本的MathLibrary上。
codeBase: codeBase所指定位置范围的有效性,于普通/强名称程序集的区别,可参见 私有程序集探测 一节中
的描述,这里仅demo之以明用法,如上发布者策略中,可通过修改publisherpolicy.xml文件来重定向
策略优先级别:
应用配置文件(app.confg/web.config)、发布者策略文件、机器配置文件(高->低)
关闭发布者策略: 可通过设置在应用配置文件中关闭发布者策略(注意:是应用程序配置文件中,
因为有优先级关系),可配置为应用程序范围级别的和某个具体的程序集范围的。如下: