我们决定从VS集成设置切换到WiX。

但是,我们目前所做的是使用项目输出文件作为安装项目的输入。这使我们可以轻松地将应用程序文件添加到目录(用于图像,示例和其他资源......),并在构建时自动将这些文件添加到设置中。

我在WiX中找不到任何类似的功能。 WiX似乎每个目录和文件都需要一个Directory条目和一个File条目。这将要求我们每次添加一个文件时都要更改WiX源,因为我们有很多这样的文件,这对我来说是令人望而却步的。

使用WiX是否有任何综合方式,或者我必须编写自己的任务,在调用蜡烛之前创建一个WiX源?

有帮助吗?

解决方案

对于WiX 2.0,牛脂非常有限;石蜡和锦葵提供额外的功能。 对于WiX 3.0,热量提供与牛脂相同的功能,稍微好一些。

在我的情况下,我使用了锦葵来源并进行了修改并使用了它,因为石蜡需要3.5版本的.Net。

您可以使用 Mallow

用于生成WiX片段的

或Paraffin工具: 入门 WiX的痛苦更好的牛脂,石蜡下载用于WiX 3.0的石蜡

其他提示

我一直在WIX 3.5中使用heat.exe就是为了这个目的。我上次检查时,文档与3.5版本不同,所以请保持记住。

以下是一个例子:

  

" $(WIX)BIN \ heat.exe" DIR   " $(SOURCEPATH)" -cg MyFiles -gg -scom   -sreg -sfrag -dr INSTALLDIR -out" $(ProjectDir)Fragments \ FileFragment.wxs"   -var wix.InstallerPath

MapGuide开源项目目前正在使用John Robbins的 Paraffin 3.0 正如其他人所指出的那样。

基本上,对于给定发布版本的第一次,我们将使用“生成"为源文件夹创建新的.wxs文件的操作,每个文件都有特定的选项。

在相同版本的后续版本中,“再生"调用action以确保使用已添加的任何新文件/目录更新.wxs文件。

我相信Heat v3现在也允许你做很多(或者可能全部?)这个,因为 Brian Rogers写道。我仍然对Paraffin通过维护静态GUID更明确地做到这一点的方式感到更舒服,但是当前的Heat似乎是一个不错的选择。

经过进一步的研究,似乎有一个名为tallow.exe的包含二进制文件就是这样做的。它通过递归搜索文件从目录创建一个片段。

在我使用WIX时,我从未遇到过允许您一次添加整个文件目录的功能。这是因为有很多方法可以使用给定的文件(系统不知道你以后是否想要引用该文件夹中的特定文件等等......而且它需要知道它们),还有因为安装本身需要非常具体。

这并不能阻止你在解析目录结构的内容后编写自己的WIX前端来生成WIX XML文件(或部分文件)。这基本上就是我们在工作中使用的系统之一。它与任何代码或文本文件生成实用程序的想法相同。只需遍历树,然后生成相应的文本。

编辑:这样,您可以将WIX视为“低级语言”。用于定义设置,以及您的实用程序作为“高级语言”。如果您需要帮助,请告诉我们。

此外,您可以通过将此实用程序添加到VStudio中的自定义构建步骤来生成WIX文件作为构建过程的一部分。这样你实际上没有“保存的WIX文件”。任何人构建,系统只是在最后构建它,在构建后步骤自动将新文件考虑在内。

scroll top