《C#类设计手册》读书随笔(4)
Programmer To Programer 丛书 C# Class Design Handbook Richard Conway, Teun Duynstee等著 清华大学出版社 代码组织和元数据 共享程序集 全局程序集缓存 Global Assembly Cache (GAC) 程序集 可重用的最小单元 元数据 为公共语言运行时提供了在运行期间加载类型和调用方法所需的所有信息 metadata 是元编程的基础,在很多系统中也是根本的东西,了解这个东西可以比较深入的了解某个架构 查看元数据最简单方法使用ildasm.exe /adv或/advancel选项 .NET模块是一个可移植、可执行(PE)格式文件 只有数据的模块 SDK包含一个工具Assembly Linker(AL.exe) 利用该工具将这些非MISL模块链接到程序集中 将该文件编译成模块,必须使用C#.NET命令行编译器 不能使用Visual Studio .NET 因为它总是创建单、程序集 例如:csc /target:module csMod.cs csMod.netmodule *.netmodule 是.NET的模块 增加模块到程序集清单中: csc /addmodule: csMod.netmodule /addmodule:VBMod.netmodule MainMod.cs 程序部署部署单程序集应用程序比较简单,直接用xcopy部署。私有程序集部署应用程序也不复杂,将需要的程序集合放在同一个文件夹或者用应用程序配置文件通知CLR在什么位置查找程序集 部署共享程序集 添加到GAC 全局程序集缓存但Microsoft不推荐应用程序与GAC相互依赖,应尽量使用应用私有程序集部署方式 利用公有-私有密钥对可以为程序集创建强名称 编译期间编译器使用私钥,将相应的公钥写入程序集清单 sn (Strong Name) sn \k *.snkMSDN中查找"Keys crytography"查找相应内容publickey 较长的数字 public key token 公钥令牌 sn \t *.snk 将共享程序集安装到GAC中 gacutil -i *.dll 需要管理员权限 或者在控制面板的管理工具中找 .NET FrameWork Configuration 本文转自风前絮~~博客园博客,原文链接:http://www.cnblogs.com/windsails/archive/2004/09/05/39837.html,如需转载请自行联系原作者