程序集版本控制

版本组成: 主版本号.次版本号.构建次数.修订号 四部分组成,

<major version>.<minor version>.<build number>.<revision>,

[assembly: AssemblyVersion("2.1.*")]

版本号在强名称程序集中才能显示出它的唯一性控制的,以下都是针对 强名称程序集 来阐述的。

程序集重定向:

1、应用程序级别:通过配置文件app.config/web.config中设置重定向元素

VersionRedirect

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 

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文件来重定向

publisherpolicy.xml

策略优先级别:

应用配置文件(app.confg/web.config)、发布者策略文件、机器配置文件(高->低)

关闭发布者策略: 可通过设置在应用配置文件中关闭发布者策略(注意:是应用程序配置文件中,

因为有优先级关系),可配置为应用程序范围级别的和某个具体的程序集范围的。如下:

应用程序范围级别
程序集级别
原文地址:https://www.cnblogs.com/FallingAutumn/p/1254244.html