如何将整个目录或项目输出添加到WiX包
-
03-07-2019 - |
题
我们决定从VS集成设置切换到WiX。
但是,我们目前所做的是使用项目输出文件作为安装项目的输入。这使我们可以轻松地将应用程序文件添加到目录(用于图像,示例和其他资源......),并在构建时自动将这些文件添加到设置中。
我在WiX中找不到任何类似的功能。 WiX似乎每个目录和文件都需要一个Directory条目和一个File条目。这将要求我们每次添加一个文件时都要更改WiX源,因为我们有很多这样的文件,这对我来说是令人望而却步的。
使用WiX是否有任何综合方式,或者我必须编写自己的任务,在调用蜡烛之前创建一个WiX源?
其他提示
我一直在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文件”。任何人构建,系统只是在最后构建它,在构建后步骤自动将新文件考虑在内。