转自
1.程序集: PE文件格式、PE32(+)头、CLR头、元数据、清单表及IL 生成的工具:C#编译器或AL.exe
2.强命名程序集、弱名称程序集: 使用了发布者的公钥/私钥进行了签名,唯一性的标识了程序集的发布者。秘钥容许对程序集进行唯一的标识,保护和版本控制
3.程序集的部署: 私有或全局
4.强命名程序集的4个重要Attribute 文件名(不包括扩展名) 版本号 语言文化culture 公钥(哈希值 public key token)
"MyTypes,Version=1.0.8123.0,Culture=neutal,PublicKeyToken=b77a5c561934e089"
1.0.8123.0 主版本号.次版本号.内部版本号.修订号
采用公钥/私钥加密技术,没有任何两家公司有相同的公钥/私钥对,两家公司可以创建相同的名称,版本和语言文化的程序集,同事不会造成冲突
System.Reflection.AssmblyName: CultureInfo,FullName,KeyPair,Name,Version GetPublicKey,GetPublicKeyToken,SetPubliKey,SetPublieKeyToken 5.创建公钥/私钥对 SN.exe: SN -k MyCompany.snk 获取公钥: SN -p MyCompany.snk MyCompany.PublieKey SN -tp MyCompany.PublicKey 私钥没办法获取
6.创建强名称程序集 使用公钥/私钥对 编译 csc /keyfile:MyCompany.snk Class1.cs
7.全局程序集缓存 Gloabl Assembly Cache(GAC) .net 3.5版本 C:\Windows\Assembly .net 4.0版本 C:\Windows\Microsoft .NET\Assembly
将程序集安装到GAC目录,使用GACUtil.exe 生成后在 C:\Windows\Microsofot .NET\Assembly\GaC_MSIL\Binfire.Test\V4.0_1.0.0.0_下找到了binfire.test.dll