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

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

还有什么办法可以改变我想要安装文件的根目录的名称。 目前,在我们的编译系统中,我想要安装的文件以“install”目录名称结束。 在由热量生成的wxs文件中出现安装。 我想知道是否可以将其更改为实际的产品名称而不是“安装”。

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

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

如果你是一个“基于样本的修饰者” ,你可以在这篇文章中find一个更快的,基于样本的导览: http : //www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-安装人员用

维克斯是动手的。 只关注样品,重点关注组件的创build和主要升级:

一旦你得到了运行,其余的细节落在适当的位置,通过阅读文档来了解你需要的任何function。 使用Visual Studio / Votive with intellisense可以确保您可以学习如快捷键,ini文件,xml文件,对话框等function。

另一个重点是使用dark.exe (Wix工具包的一部分) 反编译现有的MSI文件 。 这产生的Wix XML的代码,你可以复制并粘贴到自己的Wix文件。 我使用其他MSI工具来编译这样的MSI文件,然后将我需要的部分复制到我的Wix文件中 – 只是为了加快创buildWix XML的过程。 学习反编译的XML是非常有教育意义的 – 一个真正的节省时间。

  1. 如果所有文件都到达相同的目标文件夹,那么您可以创build一个包含所有文件的单个COMPONENT 。 没有什么能阻止你做到这一点。 然后,您可以为该组件创build一个GUID。 还请阅读这些答案,谈到实施它之前,一个组件与多个组件的优点与缺点: Answer1 Answer2 。 总结:

轻微升级/修理您将遇到麻烦。 如果一个组件正在被更新,只有被指定为KEYPATH的文件被检查,看它是否过期:如果它是最新的,所有其他的都被忽略。

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

链接

  1. 可以通过修改DIRECTORY元素的“Name”属性来改变根目录名称。
Interesting Posts