我有一个c#程序集,我通过COM从Delphi(win32 native)应用程序调用。为什么regasm.exe用错误的GUID注册我的c#程序集?
这适用于所有我测试过它,除了一个机器。
的问题是,德尔福应用程序获取“类未注册”尝试创建COM对象时。
现在,当我在注册表下查找HKEY_CLASSES_ROOT\DelphiToCSharp\CLSID
时,其中列出的GUID与AssemblyInfo.cs中的程序集Guid不同。它应该是相同的 - 它在安装它的所有其他计算机上都是一样的。
我已经试过regasm /unregister delphitocsharp.dll
,并删除注册表项。然后,如果我做regasm delphitocsharp.dll
,注册表项返回,但GUID是与以前相同(即错误),并且德尔福仍然获得“类未注册”。
工作机器上的DelphiToCSharp.dll与非工作机器上的版本相同(通过md5验证)。
所有我能想到的是,一个老版本的DLL是以前注册,并且仍然存在该文件,该文件正在regasm混淆的一些遗迹。
如何解决或至少进一步诊断这个问题?
它不能在GAC中,因为我的程序集没有签名。好的,但我会搜索文件的其他副本。 – Blorgbeard 2008-09-29 06:51:46