我希望有人能指出我正确的方向。我分几个步骤列出了问题,希望能澄清问题。
- 我使用regsvr32将 C++ DLL 注册到 COM 中。
- 然后,我将tlbimp与 C++ DLL 上的/primary属性一起使用,以制作可供 C# 使用的程序集文件。
- 然后我将新生成的程序集注册到 GAC 中。
- 我在生成的程序集上调用 regasm,以便 C++ 类型库包含对 GACed 程序集的引用。
问题是当我使用regasm /u时,它说它“已成功取消注册”。但是,当我使用 OLEVIEW 检查 COM 中的类型库时,它仍然显示对 GACed 程序集的 PrimaryInterop 引用。
我也尝试过使用 regasm /u /tlb,但我收到警告说:
RegAsm : warning RA0000 : Type library not un-registered since the assembly was
imported from COM
感谢您的帮助,因为这让我发疯了;)