2

我有一个需要为其制作安装程序的 C++ activex 控件。它需要删除 dll 并制作一些注册表项。

我有大约 6 个 .RGS 文件,我通过 regsvr32 进行自我注册,这些文件可以工作。

要进行安装程序,我手动将 RGS 脚本移植到 Visual Studio 2008 Windows 安装程序注册表 GUI 中。我觉得它不可能做一个确切的端口(例如像 ForceRemove 这样的 RGS 关键字)。

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

4

2 回答 2

1

你这样做是不对的。.rgs 文件在那里,以便组件可以自行安装。任何安装程序都支持让组件自行安装。例如,一个 Visual Studio 安装项目,设置 Register 属性。

于 2010-08-25T16:59:28.897 回答
1

SelfReg 不是 MSI 安装中的最佳实践,因为它已超出进程且易碎。Visual Studio 2008 安装程序受到限制,但您应该能够将 Register 属性设置为 vsdrfCOM 而不是 vsdrfCOMSelfReg。这将导致从您的 DLL 中获取 COM 元数据并在 MSI 中本地创作。

构建 MSI 后,您应该注意到 SelfReg 表是空的,并且注册表表中有大量为您的 COM 数据自动创作的行。

注意:VDPROJ 在提取此 COM 时有点笨拙,因此它可能无法正常工作。您可能必须考虑使用更强大的工具,例如 InstallShield 或 Windows Installer XML。

于 2010-08-25T22:53:40.687 回答