我们决定从VS集成设置切换到WiX。
但是,我们目前所做的是使用项目输出文件作为安装项目的输入。这使我们可以轻松地将应用程序文件添加到目录(用于图像,示例和其他资源......),并在构建时自动将这些文件添加到设置中。
我在WiX中找不到任何类似的功能。 WiX似乎每个目录和文件都需要一个Directory条目和一个File条目。这将要求我们每次添加一个文件时都要更改WiX源,因为我们有很多这样的文件,这对我来说是令人望而却步的。
使用WiX是否有任何综合方式,或者我必须编写自己的任务,在调用蜡烛之前创建一个WiX源?
答案 0 :(得分:24)
对于WiX 2.0,牛脂非常有限;石蜡和锦葵提供额外的功能。 对于WiX 3.0,热量提供与牛脂相同的功能,稍微好一些。
在我的情况下,我使用了锦葵来源并进行了修改并使用了它,因为石蜡需要3.5版本的.Net。
您可以使用Mallow
用于生成WiX片段的或Paraffin工具: Getting started, The pain of WiX, A better tallow, Paraffin, Download, Paraffin for WiX 3.0
答案 1 :(得分:19)
我一直在WIX 3.5中使用heat.exe就是为了这个目的。我上次检查时,documentation与3.5版本不同,所以记住这一点。
以下是一个例子:
“$(WIX)bin \ heat.exe”dir “$(SourcePath)” - cg MyFiles -gg -scom -sreg -sfrag -dr INSTALLDIR -out“$(ProjectDir)Fragments \ FileFragment.wxs” -var wix.InstallerPath
答案 2 :(得分:4)
MapGuide开源项目目前正在使用John Robbins的Paraffin 3.0,正如其他人所指出的那样。
基本上,对于给定的发行版本,我们将首次运行安装程序脚本,其中包含“generate”操作,该文件为源文件夹创建新的.wxs文件,并为每个文件创建特定选项。
在同一版本的后续版本中,调用“regen”操作以确保使用已添加的任何新文件/目录更新.wxs文件。
我相信Heat v3现在也可以让你做很多(或者全部?),Brian Rogers writes。我仍然对Paraffin通过维护静态GUID更明确地做到这一点的方式感到更舒服,但是当前的Heat似乎是一个不错的选择。
答案 3 :(得分:2)
经过进一步的研究,似乎有一个名为tallow.exe的包含二进制文件就是这样做的。它通过递归搜索文件从目录创建一个片段。
答案 4 :(得分:1)
在我使用WIX时,我从未遇到过允许您一次添加整个文件目录的功能。这是因为有很多方法可以使用给定的文件(系统不知道你以后是否想要引用该文件夹中的特定文件等等......而且它需要知道它们),还有因为安装本身需要非常具体。
这并不能阻止你在解析目录结构的内容后编写自己的WIX前端来生成WIX XML文件(或部分文件)。这基本上就是我们在工作中使用的系统之一。它与任何代码或文本文件生成实用程序的想法相同。只需遍历树,然后生成相应的文本。
编辑:这样,您可以将WIX视为定义设置的“低级语言”,将您的实用程序视为“高级语言”。如果您需要帮助,请告诉我们。
此外,您可以通过将此实用程序添加到VStudio中的自定义构建步骤来生成WIX文件作为构建过程的一部分。这样你实际上没有任何人构建的“保存的WIX文件”,系统只是在最后构建它,在构建后的步骤中自动将新文件考虑在内。