【问题标题】:Creating WIX MSI Dynamically without Candle/Light在没有蜡烛/灯光的情况下动态创建 WIX MSI
【发布时间】:2012-05-20 17:57:47
【问题描述】:

如果我想动态创建一个 MSI 安装程序,有没有一种方法可以在不包括 wix sdk 应用程序(如 candle.exe 和 light.exe)的情况下执行此操作?如果我的应用程序是用 C# 编写的,我可以引用 Microsoft.Deployment.WindowsInstaller.Package.dll 或其他一些 wix dll,并创建一个新的 MSI 文件吗?

我基本上想使用控制台应用程序动态创建一个 msi 文件,而不必引用 wix 控制台应用程序。

【问题讨论】:

  • 您可以下载wix的源代码,这样您就可以使用相同的源代码自己做任何事情。

标签: wix windows-installer wix3.5


【解决方案1】:

如果我的应用程序是用 C# 编写的,我可以引用 Microsoft.Deployment.WindowsInstaller.Package.dll 或其他一些 wix dll,并创建一个新的 MSI 文件吗?

是的。这些 Microsoft.Deployment.* DLL 被称为“部署工具基础”,它们记录在 中的 dtf.chmdtfapi.chm 文件中您的 wix 安装的 doc 文件夹。

从头开始创建新的 MSI:

string path = "path/to/myinstaller.msi";
using (var db = new Database(path, DatabaseOpenMode.Create))
{
    // lots of SQL queries to put stuff in the database here
}

或者,您可以复制现有的模板 MSI 文件,然后使用 SQL 查询对其进行修改。

您还需要打包二进制文件并将它们添加到数据库中。您可以通过使用 InstallPackage 类打开 msi 来做到这一点。

无论如何,以这种方式创建安装程序都需要详细了解Windows Installer Database Tables

【讨论】:

    【解决方案2】:

    您可以做到:您可以直接使用 WiX API(受 WiX 规定的许可条款约束)以及Windows Installer API

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 1970-01-01
      • 2021-12-26
      • 2010-09-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多