如何使用Regsvr32注册用C#编写的COM DLL?

Mik*_*ebb 14 c# vb6 com regsvr32

我有一个使用COM DLL的VB6应用程序.DLL是用C#编写的.在C#项目属性中,我选中了"Register for COM interop"选项.VB6应用程序在我的开发机器上运行良好.C#代码完全遵循以下格式:CodeProject C#COM示例

当部署到其他计算机时,Regsvr32.exe在我尝试注册DLL时出现以下错误:

The module "MyCOM.dll" was loaded but the entry-point DLLRegisterServer was not found.
Run Code Online (Sandbox Code Playgroud)

这是什么意思?没有教程/文档我读过关于COM DLL的任何关于"入口点DLLRegisterServer"的内容.

我们在不同的机器上使用RegAsm.exe时遇到了MAJOR问题,因此我们真的需要一个解决方案,我们可以运行regsvr32.exe,它将适用于我们部署到的任何机器(即XP,Vista,Windows 7,x86机器,x64)机器等)

我需要将哪些内容添加到我的C#代码中才能使其可以使用regsvr32.exe进行注册?

Han*_*ant 20

你不能.Managed [ComVisible]类库需要在Regasm.exe中注册.

您可以使用Project + Properties,Build选项卡,Register for COM interop复选框从IDE执行此操作.如果运行Regasm.exe,通常需要/ codebase命令行选项,因此您不必将程序集放在GAC中.另一个选择是让Regasm.exe使用/ regfile选项生成.reg文件.您只需在目标计算机上运行它以更新注册表.

编辑:刚看到"重大问题"的评论.请注意它们是什么,来自/ codebase.您必须在64位计算机上选择正确的版本.那里有两个.并且您需要一个提升的命令提示符,以便UAC不会停止它.