代码之家  ›  专栏  ›  技术社区  ›  Dustin Getz sunsations

COM组件的Windows安装程序

  •  2
  • Dustin Getz sunsations  · 技术社区  · 14 年前

    我有一个C++ ActiveX控件,我需要做一个安装程序。它需要删除dll并生成一些注册表项。

    我有大约6.rgs文件,我通过regsvr32进行了自我注册,这是有效的。

    要执行安装程序,我将手动将rgs脚本移植到Visual Studio 2008 Windows Installer注册表GUI中。我觉得不可能做一个精确的端口(如rgs关键字forceremove)。

    有没有办法从IDL文件生成这些文件?我做错了吗?

    2 回复  |  直到 14 年前
        1
  •  1
  •   Christopher Painter    14 年前

    SelfReg不是MSI安装中的最佳实践,因为它不在进程中,而且很脆弱。Visual Studio 2008安装程序是有限的,但您应该能够将Register属性设置为vsdrfcom而不是vsdrfcomselfreg。这将导致从您的DLL中获取COM元数据,并在MSI中进行本机编写。

    在构建msi之后,您应该注意到selfreg表是空的,并且在注册表表中为您的COM数据自动编写了大量行。

    注意:vdproj在提取这个COM时有点像薄片,因此它可能不起作用。您可能需要考虑使用更强大的工具,如InstallShield或Windows Installer XML。

        2
  •  1
  •   Hans Passant    14 年前

    你做错了。有.rgs文件,组件可以自行安装。任何安装程序都支持让组件自行安装。例如,一个Visual Studio安装项目设置register属性。