39、.NET Framework 程序集签名、强名称与全局程序集缓存使用指南

.NET Framework 程序集签名、强名称与全局程序集缓存使用指南

1. 签名程序集的优势

签名程序集在 .NET Framework 中具有显著优势。在全局程序集缓存(GAC)中的签名程序集比私有程序集更高效,运行时可以更快地重新分配它,而无需验证。而且,如果多个应用程序引用同一个签名程序集,在大多数情况下,运行时只会在内存中加载一个实例,这节省了资源并进一步提高了加载时间。

此外,签名程序集支持并行执行,即同一进程中可以同时运行同一程序集的多个版本。例如,一个应用程序可以使用程序集 AAA 的 1.0 版本,而另一个程序集 BBB 可以使用程序集 AAA 的 1.1 版本。这种重要的功能可以避免混合多个组件时的兼容性问题。

签名程序集还可以使用 Authenticode 数字签名。该签名机制采用公钥加密方案,确保特定程序集由特定制造商创建,并且未被篡改。

签名程序集通常存储在 GAC 中,但这不是必需的。你可以将签名程序集部署在硬盘上的已知目录中,供两个或多个应用程序定位。不过,只有 GAC 中的签名程序集才能充分享受上述所有优势,尽管部署在其他目录中的签名程序集也支持并行执行和公钥签名。

编写私有程序集和签名程序集代码的方式相同,因为代码中只有一个属性(或通过 Visual Studio 定义的选项)来区分它们。由于签名程序集主要用于多个应用程序之间共享,因此需要考虑一些限制。例如,共享程序集不应使用固定名称和路径创建临时文件,因为不同客户端的调用可能会替换这些文件。此外,.NET Framework 支持在同一进程(而不仅仅是同一台计算机)中并行执行共享程序集,所以共享程序集不应依赖进程资源。

2. 强名
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值