第十二讲:装配件.ppt
上传人:sy****28 上传时间:2024-09-14 格式:PPT 页数:25 大小:196KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

第十二讲:装配件.ppt

第十二讲:装配件.ppt

预览

免费试读已结束,剩余 15 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

VisualC#.NET编程技术第十二讲装配件概述装配件的特点:装配件是自我描述的,包含描述装配件的元数据,不再需要考虑注册表。版本的相互依赖性在装配件清单中进行了记录。装配件可以并行加载。应用程序使用应用域(ApplicationDomain)来确保其独立性。安装非常简单,只需xcopy即可。应用域和装配实例:demo.AssemblyAdemo.AssemblyATest(调用装配件demo.AssemblyA)装配件是.NETFramework编程的基本组成部分。装配件执行以下功能:包含公共语言运行库执行的代码。装配件形成安全边界。装配件就是在其中请求和授予权限的单元。装配件形成类型边界。装配件形成引用范围边界。装配件形成版本边界。装配件形成部署单元。装配件是支持并行执行的单元。装配件可以是静态的或动态的。创建装配件的方法您可以使用过去用来创建.dll或.exe文件的开发工具,例如VisualStudio.NET。您可以使用在.NETFrameworkSDK中提供的工具来创建带有在其他开发环境中创建的模块的装配件。您还可以使用公共语言运行库API(例如Reflection.Emit)来创建动态装配件。注:VS.NET的所有工程类型都创建装配件。装配件内容装配件清单组成:标示名、版本、文化和公共密钥。属于给装配件的一个文件列表。一个装配件至少要有一个文件。引用装配件的列表。一组许可请求——运行这个装配件的许可。装配件分组方法:单文件装配件、多文件装配件装配件的存储方法:下图显示了清单的不同存储方法。私有装配件装配件可以是私有的,也可以是共享的。私有装配件位于应用程序所在的相同目录或其子目录下。使用私有装配件时,不需要考虑与其它类的命名冲突或版本冲突问题。适合于内部使用。共享装配件在共享装配件时,必须遵循一些规则。装配件必须是唯一的,因此必须有一个唯一的名称(称为Strong名称)。该名称的一部分是一个强制的版本号。//AssemblyInfo.csusingSystem.Reflection;usingSystem.Runtime.CompilerServices;[assembly:AssemblyTitle("我的装配件")][assembly:AssemblyDescription("装配件实验")][assembly:AssemblyConfiguration("实验")][assembly:AssemblyCompany("中科天博")][assembly:AssemblyProduct("实验")][assembly:AssemblyCopyright("版权所有")][assembly:AssemblyTrademark("")][assembly:AssemblyCulture("SimpleChinese")]//本地化[assembly:AssemblyVersion("1.0.*")][assembly:AssemblyDelaySign(false)][assembly:AssemblyKeyFile("")][assembly:AssemblyKeyName("")]强名装配件强名称由以下几部分组成:程序集的标识(即它的简单文本名称),版本号和区域性信息(如果提供的话),以及公钥和数字签名。强名称是使用相应的私钥,通过程序集文件(包含程序集清单的文件,并因而也包含构成该程序集的所有文件的名称和散列)生成的。强名称相同的程序集应该是相同的。使用sn.exe工具。强名称还特别满足以下要求:强名称依赖于唯一的密钥对来确保名称的唯一性。任何人都不会生成与您生成的相同的程序集名称,因为用一个私钥生成的程序集的名称与用其他私钥生成的程序集的名称不相同。强名称保护程序集的版本沿袭。强名称可以确保没有人能够生成您的程序集的后续版本。用户可以确信,他们所加载的程序集的版本出自创建该版本(应用程序是用该版本生成的)的同一个发行者。强名称提供可靠的完整性检查。通过.NETFramework安全检查后,即可确信程序集的内容在生成后未被更改过。但请注意,强名称中或强名称本身并不暗含信任级别,例如由数字签名和支持证书提供的信任。签名强名装配件的方法:使用强名称为程序集签名的方法有两种:使用.NETFrameworkSDK提供的程序集链接器(Al.exe)。使用程序集属性将强名称信息插入代码中。您可以使用AssemblyKeyFileAttribute或AssemblyKeyNameAttribute,这取决于要使用的密钥文件所在的位置。要使用强名称为程序集签名,必须具有加密密钥对。创建