如何让我的C#DLL成为一个自我注册的DLL

Tad*_*ada 1 c# com registry installshield registration

我在C#中创建了一个COM对象,后来被VBScript使用.为了使VBScript能够实例化对象,必须对其进行注册.以前我使用随任何.NET Framework提供的RegAsm工具手动注册对象.

但是,我现在正在创建一个安装程序,所以我可以在不同的机器上安装此对象,当我使用InstallShield 2012 Spring Express时,它警告我dll不是自行注册的.

如何让我的DLL自我注册?我找到了使用C#中的Process对象调用RegAsm的人员的指南和示例,但我的对象不是可执行文件.

Chr*_*ter 5

自定义操作和自我注册不是最佳做法.

如果您的InstallShield版本不支持COM Interop,请运行以下命令:

regasm foo.dll /regfile:foo.reg

现在将该reg文件导入InstallShield并将文件foo.dll调整为[INSTALLDIR] foo.dll.

如果您的InstallShield版本不支持导入reg文件,请在记事本中编辑并手动将值输入InstallShield.

这是最干净的方法,因为您不会有任何自定义操作失败,因为MSI正在处理它知道如何卸载和回滚数据的注册.