03.共享程序集和强命名程序集
进行私有部署时,程序集放在应用程序的基目录(或者它的一个子目录)中的,这个应用程序专用的。以私有方式部署程序集,可以对程序集的命名、版本和行为进行全面的控制
CLR支持两种程序集,一种是弱命名程序集,一种是强命名程序集
强命名程序集使用发布者的公钥/私钥对进行签名,它唯一性地标识了程序集的发布者
弱命名程序集只能进行私有部署,"全局部署的程序集"是部署到一些已知的位置的程序集
强命名程序集
具有4个重要的attributes,它们共同对程序集进行唯一性标识:一个文件名、一个语言文化,一个版本号以及一个公钥。
创建强命名程序集
1.使用Strong Name程序SN.exe来获取一个密钥,运行如下
SN.exe -k company.snk
2.再次执行SN.exe程序,使用-p开关,创建一个包含公钥的文件
SN.exe -p company.snk company.Public
3.使用-tp开关,指定只包含公钥的文件
SN.exe -tp company.Public
全局程序集缓存GAC
如果一个程序集由多个应用程序使用,必须放在一个已知的目录,CLR在检测到对这个程序引用时,必须自动检查该目录,这个已知的目录就是全局程序集缓存