publickeytoken,什么是PublicKeyToken?
PublicKeyToken(公钥标记)是.NET程序集中用于唯一标识程序集的一个16进制字符串。它是使用程序集的公钥生成的哈希值,确保程序集的唯一性和完整性。PublicKeyToken的作用主要包括以下几个方面:
1. 唯一标识:PublicKeyToken能够唯一标识一个程序集,确保不同的程序集具有不同的公钥标记,从而避免混淆和错误引用。
2. 验证:PublicKeyToken可以用于验证程序集的完整性和来源。通过验证PublicKeyToken,可以确保程序集没有被篡改,并且是由预期的发布者发布的。
3. 强命名:在.NET中,程序集的强名称(Strong Name)由程序集的名称、版本号、文化和公钥标记组成。强命名可以防止程序集被篡改,并确保程序集在全局程序集缓存(GAC)中的唯一性。
4. 共享程序集:在全局程序集缓存(GAC)中部署的应用程序必须具有强名称。一个注册到GAC中的程序集被其他程序集引用时,不会复制副本到引用的程序目录中,而是直接从GAC中加载,这样可以提高程序集的共享性和效率。
5. 版本控制:PublicKeyToken可以帮助程序集处理不同版本的文件。例如,如果程序清单中记载的某个DLL是2.0的版本,但程序在运行时在GAC中只找到1.0的版本,PublicKeyToken可以告诉程序此时不提示异常,只要把这个1.0版本当成2.0版本使用。
总之,PublicKeyToken在.NET编程中起到了重要的作用,确保了程序集的唯一性、完整性和安全性。
什么是PublicKeyToken?

PublicKeyToken是.NET框架中用于标识程序集的一个唯一标识符。在.NET开发中,程序集是构成应用程序的基本单元,而PublicKeyToken则是确保程序集之间正确引用和版本控制的关键组成部分。
PublicKeyToken的作用

PublicKeyToken的主要作用是确保程序集的版本兼容性和安全性。在.NET中,程序集的版本信息包括版本号、公钥令牌(PublicKeyToken)和强名称(Strong Name)。其中,PublicKeyToken是强名称的一部分,它帮助.NET运行时区分不同版本的同名程序集。
PublicKeyToken的生成

PublicKeyToken是由程序集的公钥生成的。在创建程序集时,开发者可以选择使用自签名证书或从受信任的证书颁发机构(CA)获取证书。使用自签名证书时,PublicKeyToken是自动生成的;而使用CA证书时,PublicKeyToken则由CA提供。
PublicKeyToken的格式

PublicKeyToken是一个16字节的唯一标识符,通常以十六进制形式表示。例如,一个PublicKeyToken可能看起来像这样:`002400000080036400000000004C0B8000300000000500040000`。这个标识符是程序集的公钥的一部分,用于区分不同的程序集。
PublicKeyToken与版本控制

在.NET中,程序集的版本号由主版本号、次版本号、修订号和构建号组成。当开发者更新程序集时,通常只会修改修订号或构建号。然而,如果PublicKeyToken发生变化,那么即使版本号保持不变,也会被视为一个新的程序集版本。这是因为PublicKeyToken的变化意味着程序集的强名称发生了变化。
PublicKeyToken与强名称

强名称是.NET中用于确保程序集完整性和来源安全的一种机制。它由程序集的版本号、公钥令牌(PublicKeyToken)和强名称签名组成。当程序集被加载到运行时,.NET会检查其强名称,以确保它未被篡改,并且与预期的版本和来源匹配。
PublicKeyToken的变更处理

如果需要更改程序集的PublicKeyToken,通常需要以下步骤:
生成新的自签名证书或获取新的CA证书。
使用新的证书重新签名程序集。
更新所有引用该程序集的项目,以使用新的PublicKeyToken。
这个过程可能会比较繁琐,因为它涉及到多个项目的更新和重新编译。
PublicKeyToken是.NET中用于标识程序集的重要部分,它帮助确保程序集的版本兼容性和安全性。了解PublicKeyToken的生成、格式和作用,对于.NET开发者来说至关重要。在开发过程中,正确处理PublicKeyToken的变更,可以避免因版本不匹配而导致的运行时错误。