1

如果我想动态创建一个 MSI 安装程序,有没有办法在不包括蜡烛.exe 和 light.exe 等 wix sdk 应用程序的情况下做到这一点?如果我的应用程序是用 C# 编写的,我可以引用 Microsoft.Deployment.WindowsInstaller.Package.dll 或其他一些 wix dll,并创建一个新的 MSI 文件吗?

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

4

2 回答 2

1

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

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

从头开始创建一个新的 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 安装程序数据库表

于 2012-05-21T08:37:56.737 回答
0

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

于 2012-05-21T08:21:00.433 回答