我想往返于一个公开COM对象(互操作)的dll。我用ildasm转储了dll。在ildasm转储中,我重命名了类名的所有匹配项。一个Ilasm with dll开关和包含的资源生成了新的DLL。我不知道如何注册这个新的动态链接库(Win7)。Regasm/Regedit抱怨强名称。我还需要调整什么?谢谢。赛普
发布于 2013-01-29 19:13:26
程序集的强名称会显式阻止您执行此操作。强名称旨在检测有人篡改程序集的代码,当程序集存储在不安全的位置(如网站)时很有用。您肯定是在篡改DLL,所以您会破坏强名称。重新签名是必需的,并且这需要访问最初使用的私钥。
也就是说,在ComVisible程序集的特定情况下,有一些缓解因素。应用程序没有任何方法来验证强名称,因为这样的程序集的客户端是本机代码,它不知道关于强名称的bean。仅在允许在GAC中注册程序集时才需要强名称。这通常是此类程序集的好地方,因为它有助于避免DLL地狱。
因此,有两件事可以解决这个问题:
一定要注意这一点,在COM中,ComVisible接口和类名的实际名称并不重要。只有Guid很重要,这就是COM客户端用来查找回类型的内容。
https://stackoverflow.com/questions/14579722
复制相似问题