利用.net框架简化发布和解决dll hell问题(7)
<bindingpolicy>
<bindingredir name="calcr"
originator="32ab4ba45e0a69a1"
version="*" versionnew="6.0.0.0"
uselatestbuildrevision="yes"/>
</bindingpolicy>
关闭自动 qfe 策略
该策略允许停止“自动 qfe 策略”引用已提供的汇编。 <bindingpolicy> 标签也用在这里,但 uselatestbuildrevision 属性设置为 no,如下面例子所示:
<bindingpolicy>
<bindingredir name="calcr"
originator="32ab4ba45e0a69a1"
version="*" versionnew="6.1.1212.14"
uselatestbuildrevision="no"/>
</bindingpolicy>
安全模式
安全模式(或编译运行)策略用于恢复编译配置。启用该策略将使通用语言运行时间载入记录在清单中的关系的一个精确版本。大概应用程序在它创建、测试并第一次发布时工作。安全模式是用于恢复到该状态安全的网络。下面的 xml 代码为具体的应用程序打开安全模式:
<bindingmode>
<appbindingmode mode="safe"/>
</bindingmode>
如果某个具体的关系不符合版本规则或不经意引入一个错误,“安全模式”和“关闭自动 qfe 原则”可用于恢复应用程序到某个工作的状态。
策略解决方案中的阶段
本文已经介绍了几个版本和发布的概念,包括应用程序专用汇编、共享的汇编、全局汇编存储和用于指定版本策略的 xml 文件。本节通过描述通用语言运行时间查找汇编和应用版本策略经历的阶段将这些概念连接起来。
当通用语言运行时间遇到引用存储在元数据中的另一个汇编时,开始载入汇编的过程。根据引用,下面的步骤决定载入那个汇编的哪个版本:
参考应用程序说明文件查看是否指定了策略。如果是,以策略的信息修改原始文件。例如,如果引用指定版本 1.0.0.0 而应用程序说明策略文件指定版本 2.0.0.0,通用语言运行时间将按照如同初始指定版本 2.0.0.0 一样处理。
在应用程序目录(和子目录)中查找匹配的汇编。“匹配”定义为精确的主版本号和次版本号(除非 qfe 策略被禁止)。
不管通过查找是否发现一个匹配项,全局汇编库都将由 qfe 引用。这使管理员发布每个人都应该得到的故障排除。
最后,参考管理员策略文件。最后参考该文件是因为管理员最后决定载入哪个版本。
--------------------------------------------------------------------------------
发布
发布包含至少两个不同的方面:包装代码和将这些包装分布给运行该应用程序的客户端和服务器。.net 框架主要的目标是通过毫无影响的安装简化发布和复制发布的可行性。汇编自描述的天性使我们摆脱对注册表的依赖,因此使安装、卸载和复制变得相当简单。但是,有几种场合下复制作为发布机制并不充分。在这些情况下,.net 框架提供扩展代码下载服务并集成在 windows 安装程序中。
包装
在 .net 框架的第一个版本中有三个包装选项可用:
as-built(dll 和 exe)。在许多场合,不需要特别的包装。应用程序以发布工具制造的格式发布,即 dll 和 exe 的集合。
cab 文件。为了更有效地下载,cab 文件可用于压缩应用程序。
windows 安装程序包。 microsoft visual studio.net 和其他安装工具允许建立 windows 安装程序包(.msi 文件)。windows 安装程序允许利用应用程序修复、选择安装以及其他 microsoft windows 2000 应用程序管理功能。
分布方案
.net 应用程序能以多种方式发布,包括复制、代码下载以及通过 windows 安装程序。
对于许多应用程序,包括 web 应用程序和 web 服务,发布和复制一组文件到磁盘并运行一样简单。卸载和复制就像删除这些文件或复制它们一样容易。
.net 框架提供使用 web 浏览器下载代码的支持。该部分有几个重要问题,包括:
零影响:没有注册表项添加到机器上。
增量下载:汇编的许多分块只有在引用时才下载。
利用.net框架简化发布和解决dll hell问题(2)
--------------------------------------------------------------------------------
http://tech.acnow.net 2006-10-7 17:10:29 网络
<bindingpolicy>
<bindingredir name="calcr"
originator="32ab4ba45e0a69a1"
version="*" versionnew="6.0.0.0"
uselatestbuildrevision="yes"/>
</bindingpolicy>
关闭自动 qfe 策略
该策略允许停止“自动 qfe 策略”引用已提供的汇编。 <bindingpolicy> 标签也用在这里,但 uselatestbuildrevision 属性设置为 no,如下面例子所示:
<bindingpolicy>
<bindingredir name="calcr"
originator="32ab4ba45e0a69a1"
version="*" versionnew="6.1.1212.14"
uselatestbuildrevision="no"/>
</bindingpolicy>
安全模式
安全模式(或编译运行)策略用于恢复编译配置。启用该策略将使通用语言运行时间载入记录在清单中的关系的一个精确版本。大概应用程序在它创建、测试并第一次发布时工作。安全模式是用于恢复到该状态安全的网络。下面的 xml 代码为具体的应用程序打开安全模式:
<bindingmode>
<appbindingmode mode="safe"/>
</bindingmode>
如果某个具体的关系不符合版本规则或不经意引入一个错误,“安全模式”和“关闭自动 qfe 原则”可用于恢复应用程序到某个工作的状态。
策略解决方案中的阶段
本文已经介绍了几个版本和发布的概念,包括应用程序专用汇编、共享的汇编、全局汇编存储和用于指定版本策略的 xml 文件。本节通过描述通用语言运行时间查找汇编和应用版本策略经历的阶段将这些概念连接起来。
当通用语言运行时间遇到引用存储在元数据中的另一个汇编时,开始载入汇编的过程。根据引用,下面的步骤决定载入那个汇编的哪个版本:
参考应用程序说明文件查看是否指定了策略。如果是,以策略的信息修改原始文件。例如,如果引用指定版本 1.0.0.0 而应用程序说明策略文件指定版本 2.0.0.0,通用语言运行时间将按照如同初始指定版本 2.0.0.0 一样处理。
在应用程序目录(和子目录)中查找匹配的汇编。“匹配”定义为精确的主版本号和次版本号(除非 qfe 策略被禁止)。
不管通过查找是否发现一个匹配项,全局汇编库都将由 qfe 引用。这使管理员发布每个人都应该得到的故障排除。
最后,参考管理员策略文件。最后参考该文件是因为管理员最后决定载入哪个版本。
--------------------------------------------------------------------------------
发布
发布包含至少两个不同的方面:包装代码和将这些包装分布给运行该应用程序的客户端和服务器。.net 框架主要的目标是通过毫无影响的安装简化发布和复制发布的可行性。汇编自描述的天性使我们摆脱对注册表的依赖,因此使安装、卸载和复制变得相当简单。但是,有几种场合下复制作为发布机制并不充分。在这些情况下,.net 框架提供扩展代码下载服务并集成在 windows 安装程序中。
包装
在 .net 框架的第一个版本中有三个包装选项可用:
as-built(dll 和 exe)。在许多场合,不需要特别的包装。应用程序以发布工具制造的格式发布,即 dll 和 exe 的集合。
cab 文件。为了更有效地下载,cab 文件可用于压缩应用程序。
windows 安装程序包。 microsoft visual studio.net 和其他安装工具允许建立 windows 安装程序包(.msi 文件)。windows 安装程序允许利用应用程序修复、选择安装以及其他 microsoft windows 2000 应用程序管理功能。
分布方案
.net 应用程序能以多种方式发布,包括复制、代码下载以及通过 windows 安装程序。
对于许多应用程序,包括 web 应用程序和 web 服务,发布和复制一组文件到磁盘并运行一样简单。卸载和复制就像删除这些文件或复制它们一样容易。
.net 框架提供使用 web 浏览器下载代码的支持。该部分有几个重要问题,包括:
零影响:没有注册表项添加到机器上。
增量下载:汇编的许多分块只有在引用时才下载。