C#学习笔记 ----程序集(第18章)

程序集由描述它的程序集元数据、描述导出类型和方法的类型元数据、MSIL代码和资源组成

程序集可以使用命令行实用工具ildasm来查看,这是一个MSIL反汇编程序

 

私有程序集没有特殊的管理、注册和版本设置等问题,只有用户自己的应用程序在使用私有程序集时才有版本问题

共享程序集必须有一个版本号和一个唯一的名称,通常它安装在全局程序集缓存(global assembly cache,GAC)中

GAC位于<windows>\assembly目录下

 

程序集清单,它是元数据的一部分,由以下组成:

.标识(名称、版本、区域性和公钥)

.属于该程序集的一个文件列表

.被引用程序集的列表

.一组许可请求

.导出的类型

 

AssemblyInfo.cs用于配置程序集清单

assembly:前缀把属性标记为程序集级别特性

 

动态加载和创建程序集

CompileAssemblyFromSource()方法动态创建一个程序集

 

在.NET体系结构中,应用程序有一个新的边界:应用程序域

使用托管IL代码,运行库可以确保在同一个进程中不能访问另一个应用程序的内容

多个应用程序可以运行在一个进程的多个应用程序域中

AppDomain类用于创建和终止应用程序域,加载和卸载程序集和类型,以及枚举应用程序域中的程序集和线程

CreateDomain()方法新建应用程序域

 

必须使用强名唯一的标识共享程序集,强名通过给程序集的签名来创建

强名由下述组成:

.程序集本身的名称

.版本号

.公钥保证强名是独一无二的

.区域性

 

创建强名,使用强名工具(sn),示例:

sn -k mykey.snk

程序集中有了公钥之后,就可以使用全局程序集缓存工具gacutil及其/i选项把它安装到全局程序集缓存中,示例:

gacutil /i SharedDemo.dll /f

GAC中的程序集可以包含与它们相关联的引用

使用gacutil实用工具和选项/r可以设置程序集的引用

 

COM组件使用注册表来配置组件。.NET应用程序的配置是使用配置文件完成的

 

配置类型

.启动设置 --用于指定需要的运行库版本

.运行库设置 --用于指定运行库如何进行垃圾收集如何进行程序集绑定

.WCF设置 --用于利用WCF配置应用程序

.安全设置

.应用程序配置文件

.计算机配置文件 --可以用于系统范围的配置

.发行者策略文件 --由组件的创建者用于指定共享程序集可以与旧版兼容

 

查找程序集的正确目录有俩种方式:使用XML配置文件中的codeBase元素,或者使用probing元素

 

程序集的版本号由4部分组成,例如1.0.400.3300,各部分分别是

<Major>.<Minor>.<Build>.<Revision>

你可能感兴趣的:(学习笔记)