我正在使用wix 3.0。我有一个文件夹名称“images”。所以我想将图像中的所有文件复制到msi包中。当我复制所有文件并将msi安装到另一台电脑时,它没有绑定图像。当我使用简单的文件元素时,文件绑定到 msi 包。所以我该怎么做,

尽快回复我

谢谢你萨米尔

有帮助吗?

解决方案

显然,您想要创建一个可以生成屏幕保护程序安装程序的应用程序,其中包括用户选择的许多图像文件 - 一种专门用于创建屏幕保护程序安装程序的专用 InstallShield 应用程序。

我首先会创建一个 模板 MSI 文件 (与Wix或其他类似)一起完成大部分工作。您不知道用户稍后将选择哪些文件,因此添加 ID 为“UserSelectedFiles”的占位符组件。将此模板MSI文件与您的应用程序分发。

然后,当用户想要生成新的安装程序时,首先复制模板。编辑复制的 msi,以便它也安装用户选择的文件。您可以在“部署工具基金会” API中找到的.NET类来完成此操作。这是wix自带的一组组件;看一眼 C:\program files\Windows Installer XML v3\sdk.

我只将 DTF API 用于一些简单的事情,例如这个示例,它计算 MSI 中的文件表条目:

var database = new Database(@"\path\to\some\file.msi");
var list = database.ExecuteQuery("SELECT FileName FROM File");
Console.WriteLine(list.Count);

你的情况会稍微复杂一些。你可能需要

  • 生成一个包含图像文件的驾驶室档案,其中包含您在Microsoft.Deployment.Compression.Cab命名空间。
  • 将出租车档案合并到MSI中 Database.Merge
  • 在MSI的文件表中添加新条目
  • 将产品代码更改为每个生成的 MSI 唯一的代码
  • 等等

要了解 MSI 文件的内容以及如何编辑它,我建议您首先尝试一下 虎鲸数据库 工具。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top