WiX在目录路径中使用通配符

时间:2014-09-11 21:46:28

标签: wix wix3.6 wix3.7

基本上问题是我有一个文件要安装到许多目录中,这些目录可能存在也可能不存在。许多目录具有类似的结构,这些结构仅基于平台或版本而变化。我不想为每个可能的版本和平台以及每个配置的组件创建变量,而是希望使用某种形式的通配符将文件安装到具有REGEX结构的任何路径。一些例子如下。

示例实际路径:

C:\Program Files\Some App\v. 10\bin\
C:\Program Files\Some App\v. 12\bin\
C:\Program Files (x 86)\Some App\v. 9\bin\
C:\Program Files\Other App v. 12\bin\
C:\Program Files (x 86)\Other App v. 14\bin\

我想用作目标目录的示例:

C:\Program Files*\Some App\v. *\bin\
C:\Program Files*\Other App v. *\bin\

请注意,目录结构不是由我定义的,我只是将我的应用程序作为插件安装到其他应用程序,我需要复制配置文件。此外,实际的文件路径更复杂,我不太可能(几乎不可能)我不小心将文件安装在它不应该去的位置。同样,即使发生这种情况,它也不会破坏任何东西。

这可能吗?

编辑:如果由于目录不存在而导致文件安装失败,我不希望整个安装失败。不存在的路径是完全可以接受的。

1 个答案:

答案 0 :(得分:2)

您可以使用CustomAction(在C#,C ++,...方法中管理它)轻松实现。据我所知,WIX在文件夹结构中没有任何通配符的直接支持。

还有一个用于生成名为Paraffin的文件夹树结构的工具(您可以在此处获取下载链接http://www.wintellect.com/devcenter/jrobbins/paraffin-3-6-now-keeping-custom-added-namespaces),但这仅适用于现有结构,如果我理解您的问题,则不是您的情况。