2

我是一个对 wix 几乎没有经验的人,我也在尝试为我负责的组件支持 Windows。我正在尝试为我的产品生成的一组文件创建合并模块。这些文件存在于许多子目录中。我想知道如何为整个树中的所有文件创建单个组件 ID。我不担心小升级,因为那是我不会做的事情。我试图避免为每个文件生成大量 GUID。

还有什么方法可以更改要安装文件的根目录的名称。目前,在我们的构建系统中,我要安装的文件最终位于目录名称“install”中。在 heat 生成的 wxs 文件中,它以 install 形式出现。我想知道是否可以将其更改为实际产品名称而不是“安装”。

4

2 回答 2

2

每个组件使用一个文件 - 这样可以避免各种问题(跨越多个文件的 .NET 程序集除外)。请参阅以下线程:每个组件一个文件或每个组件多个文件?

Wix 是用于创建安装程序的出色框架,但它的学习曲线陡峭。我强烈建议您阅读这个很棒的在线教程的几个部分:https ://www.firegiant.com/wix/tutorial/

如果您是“基于示例的修补匠”,您可以在本文中找到更快的基于示例的导览:http: //www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-安装程序

Wix 是亲力亲为的。只需关注示例,并专注于创建组件和设置重大升级:

一旦你开始运行,其余的细节就会通过阅读文档来了解你需要的任何功能。将 Visual Studio / Votive 与智能感知结合使用可确保您可以随时学习快捷方式、ini 文件、xml 文件、对话框等功能......

另一个重要提示是使用dark.exe(Wix 工具包的一部分)来反编译现有的 MSI 文件。这会生成带有代码的 Wix XML,您可以将其复制并粘贴到您自己的 Wix 文件中。我使用其他 MSI 工具来编译此类 MSI 文件,然后将我需要的部分复制到我的 Wix 文件中 - 只是为了加快创建 Wix XML 的过程。研究反编译的 XML 非常有教育意义 - 可以节省大量时间。


2021 年 5 月更新:更多链接:

  1. WiX Quick Start - Very long version
  2. WiX Quick Start - Short version
于 2014-03-21T04:35:51.670 回答
-1
  1. 如果所有文件都到同一个目标文件夹,那么您可以创建一个包含所有文件的单个组件。没有什么能阻止你这样做。然后,您可以为该组件创建一个 GUID。还请阅读这些答案,其中讨论了一个组件与多个组件的优缺点,然后再实施它:Answer1 Answer2。总结:

您将无法进行小规模升级/维修。如果正在更新组件,则仅检查指定为 KEYPATH 的文件以查看它是否已过期:如果它是最新的,则忽略所有其他文件。

如果您想从每个组件中添加或删除文件,您也会遇到困难。一旦发布,组件是不可变的(就其中的文件而言)。在不破坏组件规则的情况下更新它的唯一方法是有效地删除和安装新版本的 MSI。了解组件规则是 Windows Installer 的关键,每个组件一个文件使组件规则更易于使用,这也是这里很多人推荐的原因。

关联

  1. 可以通过修改DIRECTORY元素的“名称”属性来更改根目录名称。
于 2014-03-21T01:26:52.610 回答