Wix为整个树生成单个组件ID

时间:2014-03-21 01:11:41

标签: wix guid heat

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

还有什么方法可以更改我想要安装文件的根目录的名称。目前,在我们的构建系统中,我要安装的文件最终以目录名称" install&#34 ;.在由热量生成的wxs文件中,它出现在安装中。我想知道是否可以将其更改为实际的产品名称,而不是" install"。

2 个答案:

答案 0 :(得分:2)

每个组件使用一个文件 - 这可以避免各种问题(跨越多个文件的.NET程序集除外)。请参阅以下主题:Wix: one file per component or several files per component?

Wix是一个用于创建安装程序的强大框架,但它具有陡峭的学习曲线。我强烈建议您阅读这篇伟大的在线教程http://wix.tramontana.co.hu/的几个部分。

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

Wix是亲自动手的。只关注示例,专注于创建组件并设置主要升级:

一旦运行完毕,其余的细节就会通过阅读您需要的任何功能的文档而落实到位。使用带有智能感知的Visual Studio / Votive确保您可以随时学习快捷方式,ini文件,xml文件,对话框等功能......

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

答案 1 :(得分:0)

  1. 如果所有文件都转到同一目标文件夹,那么您可以创建一个COMPONENT,其中包含所有FILE。没有什么能阻止你这样做。然后,您可以为该组件创建一个GUID。在阅读这些答案之前,请先阅读这些答案,其中讨论了一个组件与多个组件的优点和缺点:Answer1 Answer2。总结一下:
  2. 您将无法进行轻微的升级/维修。如果一个组件是 正在更新,只检查指定为KEYPATH的文件以查看是否 它已过时:如果它是最新的,则忽略所有其他的。

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

    LINK

    1. 可以通过修改"名称"来更改根目录名称。 DIRECTORY元素的属性。