.Net Framework Programming 读书笔记(3)
[2005-05-05]
3.1 两种程序集、两种部署方式
.Net 框架支持两种程序集:弱命名程序集(weakly named assembly)和强命名程序集(strongly named assembly)
强命名程序集有一个发布者的公钥/私钥的签名
3.2 强命名程序集
文件名(没有扩展名),版本号,语言文化标识和一个公司密钥标记(由有密钥产生的一个值)
强命名实用工具(Stong Name Utility) 即:SN.exe (所有命令行区分大小写)
sn -k MyCompany.Keys
该文件包含一个公/私有密钥。
* sn -p MyCompany.Keys MyCompany.PublicKey
创建一个只包含公有密钥的文件
sn.exe的-tp命令行开关在输出的末尾显示了和完整的公有密钥对应的公有密钥标记。
创建强命名程序集:
[assembly:AssemblyKeyFile("MyCompany.Keys")]
对于一个弱命名程序集JeffTypes.dll没有公有密钥签名:可以将AssemblyKeyFile特性加到源代码中,也可以:
AL.exe /keyfile 命令行
3.3 全局程序集缓存
Global Assembly Cache(GAC) "GACUtil.exe" 该程序集必须由有PublicKey的
GAC内部结构
3.4 引用强命名程序集
响应文件 (response file) "csc.rsp"
csc.exe @MyProject.rsp CodeFile1.cs CodeFile2.cs
可以用"/noconfig"命令开关忽略所有本地和局域csc.rsp文件。
3.5 强命名程序集的防篡改特性
3.6 延迟签名
delayed signing也叫局部签名(partial singing),可以用公司的公有密钥就可以生成程序集:
AssemblyKeyFileAttribute和AssemblyDelaySignAttribute特性。
也可以:AL.exe /keyf[ile] 和 /delay[sign] 开关来实现这一点。
此时,不可以直接安装到GAC中,文件看上去象遭到篡改的。可以:sn.exe 工具制定-Vr命令。
3.10 高级管理控制(配置)
.Net Configuration 1.1配置工具。
发布者策略控制
3.11 修复错误的应用程序
程序集(Windows窗体)加载信息被累加在内存中,并在应用程序结束时写入磁盘中。
..\Local Settings\Application Data\ApplicationHistory
[应用程序]--[修复应用程序]
浙公网安备 33010602011771号