.NET Framework 程序集签名、强名称与全局程序集缓存使用指南
1. 签名程序集的优势
签名程序集在 .NET Framework 中具有显著优势。在全局程序集缓存(GAC)中的签名程序集比私有程序集更高效,运行时可以更快地重新分配它,而无需验证。而且,如果多个应用程序引用同一个签名程序集,在大多数情况下,运行时只会在内存中加载一个实例,这节省了资源并进一步提高了加载时间。
此外,签名程序集支持并行执行,即同一进程中可以同时运行同一程序集的多个版本。例如,一个应用程序可以使用程序集 AAA 的 1.0 版本,而另一个程序集 BBB 可以使用程序集 AAA 的 1.1 版本。这种重要的功能可以避免混合多个组件时的兼容性问题。
签名程序集还可以使用 Authenticode 数字签名。该签名机制采用公钥加密方案,确保特定程序集由特定制造商创建,并且未被篡改。
签名程序集通常存储在 GAC 中,但这不是必需的。你可以将签名程序集部署在硬盘上的已知目录中,供两个或多个应用程序定位。不过,只有 GAC 中的签名程序集才能充分享受上述所有优势,尽管部署在其他目录中的签名程序集也支持并行执行和公钥签名。
编写私有程序集和签名程序集代码的方式相同,因为代码中只有一个属性(或通过 Visual Studio 定义的选项)来区分它们。由于签名程序集主要用于多个应用程序之间共享,因此需要考虑一些限制。例如,共享程序集不应使用固定名称和路径创建临时文件,因为不同客户端的调用可能会替换这些文件。此外,.NET Framework 支持在同一进程(而不仅仅是同一台计算机)中并行执行共享程序集,所以共享程序集不应依赖进程资源。
超级会员免费看
订阅专栏 解锁全文
513

被折叠的 条评论
为什么被折叠?



