【发布时间】:2011-02-01 16:05:07
【问题描述】:
如果我想让 .NET 程序集可用作 COM 服务器,我必须添加一组属性,然后使用 regasm 将其注册为 COM 服务器。
如果程序集未使用强名称 regasm 签名,则在使用 /codebase 键运行时会显示 RA0000 警告,指出程序集可能会干扰同一台计算机上的其他程序集和我应该用强名称签名,但注册成功,它甚至可以正常工作。
AFAIK 强名称旨在防止所谓的 DLL 地狱。但 COM 也旨在防止 DLL 地狱。如果我更改任何暴露给 COM 的接口,我必须要么更改 GUID,要么至少保持二进制兼容性。所以用强名称签名似乎并没有增加任何有用的东西——没有什么能阻止我破坏 COM 接口,然后用相同的密钥对签名并拥有成熟的 DLL 地狱。
在 COM 公开的 .NET 程序集的情况下,使用强名称签名有什么用?
【问题讨论】:
标签: .net com assemblies regasm snk