大家好,我的 WiX 同胞们,
我想知道这是否可能,如果可以,我可以去哪里学习如何做到这一点,在一个目录上运行 heat 并使该目录中的每个目录成为它自己的组件组。
例子:
- 根目录
- 子目录 1
- 子子目录 1
- 子子目录 2
- 子目录 3
- 子目录 2
- 子子目录 1
- 子子目录 2
- 子目录 3
- 子目录 3
- 子子目录 1
- 子子目录 2
- 子目录 3
- 子目录 1
然后在 VS2010 项目的 Build Event 中运行 heat 命令(示例如下):
heat dir "Root Directory" -gg -sfrag -srd -dr INSTALLFOLDER -out MyWXS.wxs
然后让 WXS 文件的结构如下:
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Fragment>
<DirecotryRef Id="INSTALLFOLDER">
<Directory Id="dir84156489" Name="Sub Dir 1"> ... </Directory>
<Directory Id="dir84156489" Name="Sub Dir 2"> ... </Directory>
<Directory Id="dir84156489" Name="Sub Dir 3"> ... </Directory>
</DirectoryRed>
</Fragment>
<Fragment>
<ComponentGroup Id="Sub Dir 1"> ... </ComponentGroup>
<ComponentGroup Id="Sub Dir 2"> ... </ComponentGroup>
<ComponentGroup Id="Sub Dir 3"> ... </ComponentGroup>
</Fragment>
</wix>
如果我的问题有任何混淆,或者如果有人对我有任何其他问题,请告诉我。谢谢你,我期待收到你的来信。
编辑 使用以下 xslt 文件,我得到以下 WXS 结构:
**XLST File**
<?xml version="1.0" encoding="utf-8"?>
**WXS File Result**
<Wix>
<Fragment>
<DirectoryRef Id="INSTALLFOLDER">
<Directory Id="dir846546" Name="SubDir1"> ... </Directory>
<Directory Id="dir846546" Name="SubDir2"> ... </Directory>
<Directory Id="dir846546" Name="SubDir3"> ... </Directory>
</DirectoryRef>
</Fragment>
<wix:Fragment xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">
<wix:ComponentGroup Id="SubDur1"> ... </wix:ComponentGroup>
</wix:Fragment>
<wix:Fragment xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">
<wix:ComponentGroup Id="SubDur2"> ... </wix:ComponentGroup>
</wix:Fragment>
<wix:Fragment xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">
<wix:ComponentGroup Id="SubDur3"> ... </wix:ComponentGroup>
</wix:Fragment>
</Wix>
无论我做什么,我都无法将目录创建为组件组......