![如何创建 MSI 来安装和注册 ActiveX 控件?](https://linux22.com/image/505770/%E5%A6%82%E4%BD%95%E5%88%9B%E5%BB%BA%20MSI%20%E6%9D%A5%E5%AE%89%E8%A3%85%E5%92%8C%E6%B3%A8%E5%86%8C%20ActiveX%20%E6%8E%A7%E4%BB%B6%EF%BC%9F.png)
我有一个第三方 ActiveX 控件,我想将其打包到 msi 中,以便可以通过组策略进行部署和注册。目标是我不希望最终用户必须单击并在 IE 中安装 ActiveX 控件。我有 Cab 文件,其中包含 (2) 个 ocx 文件、(1) 个 inf 文件和 (1) 个 dll。我如何知道将它们安装并注册为 IE 中的 ActiveX?
答案1
您的要求完全可行。基本上,“如何”做到这一点就是学习使用 MSI 创作工具,确定文件需要放在硬盘驱动器的哪个位置,确定需要放入注册表的内容,然后构建一个可执行所需操作的 MSI 文件。
就我个人而言,我使用Windows 安装程序 XML (WiX)用于构建 MSI 文件的工具包。
有一个绝对精彩的 WiX 教程由 Gábor DEÁK JAHN 维护。如果您想要构建无 UI 的静默安装程序,那么本教程中的很多内容您其实并不需要学习,但仍然非常实用。
虽然它适用于 WiX 2.0(不是当前版本,但仍然可用并且运行良好),但这WiX 教程做得很好。
市面上也有很多第三方图形 MSI 构建器。它们分为基于快照的和基于非快照的。
基于快照的软件包构建器存在一个问题,即在软件安装过程中将无关的更改拾取到快照计算机中,并且可能会创建非常混乱的软件包。我有时会使用快照工具来“感受”安装程序的功能,但我总是手动构建生产软件包。
非基于快照的系统通常只是 MSI 模式的图形 IDE(以及一些用 WiX“编译”的通用 WiX XML 源文件),允许您通过拖放等方式来创建包。
无论您做什么,了解 Windows 安装程序的工作原理都会给您带来构建良好软件包的最佳机会。微软的文档有点晦涩,但里面有很多好东西。最后,我发现反复试验是熟悉 Windows Installer 细微差别的最佳方法。
答案2
我已按照以下步骤成功完成此操作几次:
- 将 cab 中的所有文件提取到新文件夹中
- 打开命令提示符并进入该目录
像这样加热:
“c:\Program Files (x86)\Wix Toolset v3.9\bin\heat.exe”目录。-cg CoreCmpGroup -gg -template fragment out.wxs
然后在您的项目中使用 out.wxs。所有 COM 注册等都将神奇地为您完成。:)
答案3
我还没有尝试过,但我担心 ActiveX 控件的自动部署会如何与 Internet Explorer 安全性产生交互。我的直觉是“不太好”。我更倾向于配置策略以信任使用该控件的站点(如果您确信这样做是安全的)或控件本身(这可能有点麻烦),并让控件以正常方式关闭。