.net程序集Strong Name和PublicKeyToken的显示名称格式

时间:2014-07-14 23:58:25

标签: .net .net-assembly strongname publickeytoken

我检查了有关此MSDN来源中AssemblyName的显示名称格式的信息,它说:

  

AssemblyName的显示名称格式是以逗号分隔的Unicode字符串,以名称开头,如下所示:

     

姓名<,Culture = CultureInfo> <,Version = Major.Minor.Build.Revision> <,StrongName> <公钥> ' \ 0'

     

名称是程序集的文本名称。 CultureInfo是RFC1766格式定义的文化。 Major,Minor,Build和Revision是程序集的主要版本,次要版本,内部版本号和修订版号。 StrongName 使用SHA-1哈希算法生成的公钥哈希值的十六进制编码的低64位和由SetPublicKey指定的公钥。 PublicKeyToken是由 SetPublicKey 指定的十六进制编码的公钥。

然后检查了SetPublicKey,它说:

  

设置公钥标记,即公钥的SHA-1哈希的最后8个字节,应用程序或程序集在其下签名。

所以听起来StrongName与上面的显示格式规范中的PublicKeyToken相同,那么为什么两者都以相同的格式并排列出?当我尝试使用 AssemblyName.FullName 打印出程序集的AssemblyName时,它只显示如下内容:

  

System,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089

因此没有StrongName显示,并且不遵循上面指定的顺序,即版本信息出现在文化信息之前。

有人可以解释一下吗?感谢。

0 个答案:

没有答案