clr支持两种类型的程序集:弱命名程序集和强命名程序集。
由于弱命名程序集总是私有部署的,因此当CLR在应用程序的基目录或子目录中搜索程序集文件时,仅使用程序集的名称(加上.dll或.exe后缀)。
强命名程序集则由文件名、版本号和语言文化(culture)组成。此外,强命名程序集还使用发布者的私钥进行签名。
创建强命名程序集的步骤包括:使用Strong Name实用程序(SN.exe)获取一个密钥。(该程序随.NET Framework SDK和MS VS提供。)例如,SN –k MyCompany.snk。请注意,SN.exe的所有命令行参数区分大小写。由于公钥数字很大且难以使用,人们设计了公钥标记(public key token),它是公钥的64位哈希值。
下图展示了CLR对文件进行签名的过程。
全局程序集缓存