我检查了有关此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显示,并且不遵循上面指定的顺序,即版本信息出现在文化信息之前。
有人可以解释一下吗?感谢。