使用准系统环境编译MSI文件的过程是什么?

时间:2014-02-28 10:56:07

标签: windows-installer

Innosetup,WiX和Visual Studio Professional用户,前辈。这不是关于这些工具及其亲属的问题。

我想制作一个MSI文件。通过与Orca一起检查,我大致知道MSI文件是由什么构成的。 (随Windows 7 SDK一起提供)我知道你可以让MSI做其他事情。 (只是因为它可以嵌入本机DLL映像并调用其导出函数)

我想知道如何从一组源文件生成MSI文件。简而言之,任何人都可以给我:

  • 能够生成MSI文件的编译器/汇编程序/打包程序的名称,
  • 在何处找到它。
  • 用于构建MSI的(可能是一组)命令行和(可能是一组)最小示例源文件。

1 个答案:

答案 0 :(得分:1)

暂时忘记“编译”这个词。这是WiX和InstallShield带来的一个比喻。 (.wxs - > .MSI或.ism - > .MSI)在纯粹的准系统Windows Installer世界中,您只需创建MSI数据库。

从技术上讲,创建Windows Installer数据库所需的一切都已安装在Windows的准系统安装中。通过VB / JScript,您可以使用Windows Installer Automation Interface来创建和更新数据库。例如,Installer.OpenDatabase method可用于创建空的.MSI。如果您更愿意在C ++中执行此操作,则可以使用Windows Installer API MsiOpenDatabase function。您也可以使用.NET应用程序进行互操作。但是,老实说,Windows Installer XML在Deployment Tools Foundation(DTF)中有一个名为Microsoft.Deployment.WindowsInstaller的库,这是执行此操作的黄金标准。你不会浪费生命中的一分钟处理互操作问题,因为他们已经为你做了这件事。

如果要安装Windows Platform SDK,您会找到一堆标题和库以及Windows Installer Scripting Examples。当然还有你最好的朋友,Windows Installer数据库编辑器Orca.exe

现在,所有这些都是良好的基础知识。但说实话,这些只是Microsoft在1999年创建的SDK资源。它们主要用于Windows Installer Tools开发人员,而不是Windows Installer开发人员。你是谁?如果您正在创建一个新工具,我感谢您,并希望这些信息可以帮助您入门。如果您正在创建MSI,除了您在问题中设置的限制之外,我可以为您提供更好的答案。