MSI注册dll - 自我注册被认为是有害的

时间:2011-05-25 19:32:45

标签: winforms installer windows-installer dllregistration

我有一个 .NET winform应用程序,需要在安装期间注册本机dll。我的问题是如何在MSI安装过程中注册一个DLL( regsvr32 ABC.dll )?类似地,如何在卸载过程中取消注册dll?

4 个答案:

答案 0 :(得分:12)

答案 1 :(得分:4)

vsdrfCOMSelfReg不是最佳做法。请尝试使用vsdrfCOM。这将“提取”(或尝试,vdproj有时是POS)来自DLL的COM元数据并将其创建到正确的COM表中。这比希望在安装时对DllRegisterServer的进程外调用更好。

既然MSI本身知道您的COM资源,它将为您处理安装和卸载。

答案 2 :(得分:1)

在Windows Installer的Tao中向下滚动到规则19,看看MSI团队说了些什么:

http://blogs.msdn.com/b/windows_installer_team/archive/2006/05/12/595950.aspx

答案 3 :(得分:0)

选择要注册的文件,然后在“属性”窗口中将“注册”字段设置为vsdrfCOMSelfReg。这将在SelfReg表中创建一个条目,该表将自动注册/取消注册您的DLL。

http://msdn.microsoft.com/en-us/library/aa371608(VS.85).aspx