Question fantastique. J'adorerais voir des exemples de meilleures pratiques.
J'ai beaucoup de fichiers que je distribue, j'ai donc configuré mon projet en plusieurs fichiers sources wxs.
J'ai un fichier source de premier niveau que j'appelle Product.wxs et qui contient essentiellement la structure de l'installation, mais pas les composants réels. Ce fichier comporte plusieurs sections :
<Product ...>
<Package ...>
<Media>...
<Condition>s ...
<Upgrade ..>
<Directory>
...
</Directory>
<Feature>
<ComponentGroupRef ... > A bunch of these that
</Feature>
<UI ...>
<Property...>
<Custom Actions...>
<Install Sequences....
</Package>
</Product>
Le reste des fichiers .wix est composé de fragments qui contiennent des ComponentGroups référencés dans la balise Feature du Product.wxs. Mon projet contient un regroupement logique des fichiers que je distribue.
<Fragment>
<ComponentGroup>
<ComponentRef>
....
</ComponentGroup>
<DirectoryRef>
<Component... for each file
....
</DirectoryRef>
</Fragment>
Ce n'est pas parfait, mon sens de l'araignée OO me titille un peu parce que les fragments doivent faire référence à des noms dans le fichier Product.wxs (par exemple le DirectoryRef) mais je trouve cela plus facile à maintenir qu'un seul gros fichier source.
J'aimerais avoir des commentaires à ce sujet, ou si quelqu'un a de bons conseils à donner !