部署与版本控制

上传人:mg****85 文档编号:54961280 上传时间:2018-09-22 格式:PPT 页数:39 大小:1.28MB
返回 下载 相关 举报
部署与版本控制_第1页
第1页 / 共39页
部署与版本控制_第2页
第2页 / 共39页
部署与版本控制_第3页
第3页 / 共39页
部署与版本控制_第4页
第4页 / 共39页
部署与版本控制_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《部署与版本控制》由会员分享,可在线阅读,更多相关《部署与版本控制(39页珍藏版)》请在金锄头文库上搜索。

1、基于VB.NET的 .NET Framework程序设计,第10章 数据流和文件 第11章 Internet访问 第12章 序列化 第13章 远程处理 和 XML Web Service 第14章 线程和异步编程 第15章 托管代码与非托管代码之间的互操作 第16章 使用Microsoft ADO.NET 访问数据 第17章 属性,第1章 Microsoft .NET Framework概述 第2章 托管执行环境的介绍 第3章 使用组件 第4章 部署与版本控制 第5章 通用类型系统 第6章 类型的使用 第7章 字符串、数组和集合 第8章 委托和事件 第9章 内存和资源管理,第4章 部署与版本控

2、制,应用程序部署介绍 应用程序部署方案 相关主题和工具,应用程序部署介绍,基本概念 简单应用程序 组件化应用程序 配置和分发,4.1 应用程序部署介绍,基本概念,.NET Framework应用程序中用到的类和类型 被组织在命名空间体系中 保存在PE文件中,如DLL文件和EXE文件 被元数据充分描述 程序集 由一个或多个PE文件组成 包含标识程序集的清单 详细说明输入输出的类和类型 部署,重用和版本控制的单位,4.1.1 基本概念,简单应用程序,需要本地计算机上安装.NET运行库 可以从文件服务器或者本地拷贝直接运行 不需要在注册表注册 不会影响其他应用程序 防止了DLL版本冲突(“DLL地狱

3、”) 通过直接删除卸载应用程序,4.1.2 简单应用程序,组件化应用程序,程序集属应用程序专有 和简单应用程序类似 程序集属相关应用程序专有且共享 把程序集部署到一个公共的子目录中 程序集被其他不相关应用程序共享 程序集需要一个强名称和版本信息 把程序集部署到全局程序集缓存中,4.1.3 组件化应用程序,配置和分发,配置应用程序 通过以XML为格式的文本文件来配置应用程序 不需要开发人员的参与,系统管理员就可以在不同的计算机上定制应用程序 部署应用程序 通用分发格式,例如 .CAB 文件或者Windows Installer (.MSI)文件 通用分发机制,如 Windows 2000 Int

4、elliMirror 或 微软系统管理服务器,4.1.4 配置和分发,第4章 部署与版本控制,应用程序部署介绍 应用程序部署方案 相关主题和工具,应用程序部署方案,简单应用程序 组件化应用程序 指定私有程序集路径 强名称程序集 部署共享组件 版本化程序集 创建强名称程序集的多个版本 绑定策略部署多版本的强名称程序集,4.2 应用程序部署方案,简单应用程序,用 MSIL反编译器 (Ildasm.exe)来查看程序集清单包含的信息 版本信息 输出类型信息 输入类型信息 部署应用程序 从文件服务器上直接执行可执行文件,或者通过本地拷贝安装应用程序 通过直接删除文件来卸载应用程序,4.2.1 简单应用

5、程序,简单应用程序(续),程序集清单包含的输入输出类型及版本信息,4.2.1 简单应用程序,组件化应用程序,被应用程序调用的程序集组件 创建程序集Stringer.dll引用程序集来创建客户端应用程序通过文件服务器和本地拷贝来部署应用程序 一般情况下可以用拷贝部署应用程序,用直接删除来卸载应用程序,vbc /target:library Stringer.vb,vbc /reference:Stringer.dll Client.vb,4.2.2 组件化应用程序,指定私有程序集路径,现实中,系统管理员为了管理方便会把程序集组件放到一个单独的子目录中 编译时指定程序集的路径 重新编译上一节的源文

6、件,只是编译选项有些不同,cd compapp vbc /target:library /out:MyStringerStringer.dll MyStringerStringer.vb vbc /reference:MyStringerStringer.dll Client.vb,4.2.3 指定私有程序集路径,指定私有程序集路径(续),在Client.exe.config配置文件中用privatePath标签类指定应用程序加载私有程序集的路径 配置文件中XML标签是区分大小写的 配置文件名是应用程序全名称加“.config”,4.2.3 指定私有程序集路径,全局程序集缓存包含被多个不相关应

7、用程序共享的程序集 组件共享中的问题 在COM和COM+时代,组件共享严重依赖注册表,如新安装修改了系统注册表就会造成其他应用程序崩溃 在.NET平台上,通过并行执行(side-by-side execution)来杜绝了这个缺陷 强名称 强名称包含类型名称、版本号、区域信息、私钥四个要素 下面三个字符代表不同的三个组件,强名称程序集,“MyTypes,Version=1.0.8123.0,Culture=neutral,PublicKeyToken= b77a5c561934e089“ “MyTypes,Version=1.0.8123.0,Culture=“en-US“,PublicKey

8、Token= b77a5c561934e089“ “MyTypes,Version=2.0.1234.0,Culture=neutral,PublicKeyToken= b77a5c561934e089“,4.2.4 强名称程序集,强名称程序集(续),创建强名称组件 产生私钥向资源文件中指定版本和私钥信息代码编译组件,#If STRONG Then#End If,vbc /define:STRONG=True /target:library /out:AReverser.dllAReverser.vb,sn k OrgKey.snk,4.2.4 强名称程序集,部署共享组件,把强名称组件安装到全

9、局程序集缓存中检查全局程序集缓存开发者可用gacutil /u 命令自动删除共享组件文件,gacutil /i AReverser.dll,gacutil /l,gacutil /u AReverser,4.2.5 部署共享组件,部署共享组件(续),全局程序集缓存安装在WindowsDirectoryAssembly目录中系统管理员可以从WindowsDirectoryAssembly目录中直接删除组件只有具有管理员权限的用户才能把强签名组件安装到全局程序集缓存或删除组件,4.2.5 部署共享组件,版本化程序集,版本号由4部分的数字组成,每个部分代表不同的含义,被逻辑上分所成三个部分,代表含义

10、如下 不兼容,产品的主要新版本就属于这种情况 可能兼容,服务包或每日生成的新版本就属于这种情况 快速修复工程(QFE),如紧急安全修补就属于这种情况,4.2.6 版本化程序集,版本化程序集(续),应用程序需要绑定到适当版本的共享程序集 每一程序集都有一个特定的兼容性版本号作为其标识的一部分 具有不同兼容版本号的共享组件是完全不同的程序集 默认,应用程序寻找创建时指定版本的程序集 除非有明确的策略指定要加载哪个版本的程序集,4.2.6 版本化程序集,版本化程序集(续),除了版本号,程序集还用区域信息作为程序集的标示,默认是区域信息中性的 不同的区域信息的程序集代表不同的程序集 下表列出了几种区域

11、信息的例子,4.2.6 版本化程序集,创建强名称程序集的多个版本,用Ildasm.exe 来查看两个版本的不同之处 注意公钥和版本号,#If STRONG Then#End If,vbc /target:library /out:AReverser_v2.0.0.0AReverser.dllAReverser_v2.0.0.0AReverser.vb /define:STRONG=True,.assembly AReverser . .publickey = (00 24 . 82 B1 F2 A0 ).hash algorithm 0x00008004.ver 2:0:1:0,4.2.7 创

12、建强名称程序集的多个版本,用新的公钥私钥对创建两个不同版本的 AReverser组件 一个指定版本 2.0.0.0 ,另一个指定 2.0.1.0 为AReverser_v2.0.0.0AReverser.vb指定版本,编译,绑定策略,允许程序集引用在应用程序部署之后修改 允许程序集引用(在编译时指定)在应用程序部署之后修改,而不必重新编译涉及的程序集 策略解析可能发生在下列阶段 1. 应用程序策略解析 2. 发行者策略解析 3. 管理员策略解析 在每个阶段XML配置文件被读取 注意: XML是大小写敏感的 非强名称组件的版本号不检查 配置文件中的标签包括 privatePath binding

13、Redirect,4.2.8 绑定策略,绑定策略(续),发行者策略解析允许共享组件供应商在他们的软件的不同修订号之间作出兼容性声明 因为发行者策略影响整个系统的版本重定向,所以它受管理员策略的制约 基于上面的原因,程序集应与应用程序分开安装,这一点很重要 管理员策略解析是绑定策略解析过程中的最后阶段,也是最具决定性的阶段 管理员策略文件位于 WindowsDirectoryMicrosoft.NETFrameworkv1.0.FinalBuildNumberCONFIG 目录中,叫做 Machine.config,4.2.8 绑定策略,部署多版本的强名称程序集,通过配置文件来修改版本策略 这些

14、配置文件包括应用程序配置文件,发行者配置文件和系统管理员配置文件 以上配置文件指定的版本策略使保存在客户端程序集清单中的版本策略无效 编译客户端 VerClient.exe ,指定版本 2.0.0.0的AReverser组件,vbc /reference:MyStringerStringer.dll/reference:AReverser_v2.0.0.0AReverser.dll VerClient.vb,4.2.9 部署多版本的强名称程序集,部署多版本的强名称程序集(续),用版本策略在运行时指定程序集绑定 绑定到指定版本的程序集,4.2.9 部署多版本的强名称程序集,第4章 部署与版本控制

15、,应用程序部署介绍 应用程序部署方案 相关主题和工具,相关主题和工具,相关主题 打包和部署工具,4.3 相关主题和工具,相关主题,ASP .NET应用程序 ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET)创作应用程序 程序集 是部署、版本控制、重复使用、激活范围控制和安全权限的基本单元 安全 代码访问安全 角色为基础的安全 本地化,4.3.1 相关主题,打包和部署工具,程序集链接器 (Al.exe) 全局程序集缓存工具 (Gacutil.exe) MSIL 反编译器 (Il

16、dasm.exe) 强名称(Sn.exe) 本地映像文件生成器 (Ngen.exe) 程序集绑定日志查看器(Fuslogvw.exe) .NET Framework部署工具 (Mscorcfg.msc) 代码访问安全策略工具 (Caspol.exe),4.3.2 打包和部署工具,实验 打包和部署,练习1 将私有程序集放到多个目录中 练习2 使用强名称程序集和版本控制,回顾,打包和部署简单应用程序和组件化应用程序 创建强名称程序集 向全局程序集缓存安装强名称程序集 配置应用程序使其绑定特定位置和版本的程序集,学习完本章后,将能够:,随堂练习1,程序集清单中包含下列哪些信息(多选)? A. 程序集名称 B. 版本号 C. 程序集中所有文件的列表 D. 该程序及引用的其他程序集的信息 E. 从该程序集导出的类型的信息,随堂练习2,下列哪些选项不是程序集强名称的一部分(多选)? A. 程序集清单校验和 B. 程序集版本号 C. 程序集区域信息 D. 程序集所在文件夹,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号