Je dois définir un composant de fichier Wix qui peut ne pas exister dans certaines circonstances. Est-ce qu'il y a un moyen de faire ça? Les éléments de condition dans Wix semblent tous fonctionner au moment de l'installation, et j'ai besoin de quelque chose qui détectera au moment de la compilation si un fichier est présent et construira l'installateur en conséquence.WiX: Définir un composant de fichier qui n'existe peut-être pas
Répondre
Comme je l'ai dit, preprocessor variables est votre ami! Cependant, l'exemple de iwo peut (et va) enfreindre les règles des composants, car le composant n'est pas 'stable'. Mieux vaut conditionner un composant entier (ou groupe de composants) ...
<?if $(var.releasetype)=full ?>
<ComponentRef Id="Somefile.dll" />
<?elseif $(var.releasetype)=enterprise ?>
<ComponentGroupRef Id="SomethingElse" />
<?endif?>
Et puis inclure les Component
et ComponentGroup
s dans Fragment
séparés balises afin qu'ils ne seront compilés en référence :)
<Fragment>
<Component Id="Somefile.dll" Guid="*">
<File Id="Somefile.dll" KeyPath="yes" Source="SourceDir\Somefile.dll" />
</Component>
</Fragment>
<Fragment>
<ComponentGroup Id="SomethingElse">
<ComponentRef Id="Somefile.dll" />
<Component Id="AnotherFile.dll>
<File Id="AnotherFile.dll" KeyPath="yes" Source="SourceDir\AnotherFile.dll" />
</Component>
</ComponentGroup>
</Fragment>
Personnellement, j'utilise nant pour appeler candle
et light
cibles, définissant différentes variables pour différents builds et produits, l'utilisation efficace des fragments et des variables de préprocesseur fournit une grande opportunité pour la réutilisation de code entre les projets, ou divers re baux du même projet.
Dans votre cas, pour vérifier si un fichier existe ... vous utiliseriez simplement les fonctions internes pour définir ou redéfinir une variable qui sera ensuite transmise à WiX. par exemple:
<if test="${not file::exists('something.dll')}">
<property name="releasetype" value="blahblahblah" />
</if>
Il semble que vous deviez vérifier le préprocesseur wix. Consultez la documentation de wix sur le sujet: wix preprocessor
par exemple, supposons que vous ayez une variable d'environnement appelée APPTYPE. Si sa valeur est 'Full', alors MyApp_Full.exe sera inclus et traité par le compilateur wix (bougie).
<Component Id='MyComponent1' Guid='fff60f72-5553-4e6b-9bf0-ad62ab9a90b1'>
<?if $(env.APPTYPE) = Full?>
<File Name='MyApp_Full.exe' DiskId='1' Source='..\MyApp_Full.exe' Vital='yes' />
<?endif?>
...
</Component>
Il y a plus! Variables, définit, conditionnelles. Consultez cette page de documentation.
- 1. Wix: un fichier par composant ou plusieurs fichiers par composant?
- 2. Wix - Définir l'accès en lecture de fichier
- 3. WiX: Définir fait dans le fichier inclus n'est pas disponible de wxs-fragment-fichier
- 4. wix évaluation de l'état du composant
- 5. Comment définir les conditions qui ont des dépendances dans WiX?
- 6. Décomposition d'un fichier WIX
- 7. WiX référençant un fichier de licence externe
- 8. L'enregistrement d'un composant qui nécessite un paramètre de constructeur qui est un type de béton qui n'a pas d'interface
- 9. Comment puis-je définir une icône pour un fichier associent en utilisant WiX?
- 10. Comment définir des couleurs de lien dans un composant RichEditableText
- 11. Comment définir un cookie avec un composant middleware (ruby) rack?
- 12. Inclure un contenu de fichier texte dans un script WiX
- 13. Définir la version ASP.Net en utilisant WiX
- 14. Comment définir une propriété dans Wix
- 15. Ajout raccourci pour le fichier WiX dans un fragment
- 16. Dans un composant WebPart SharePoint, comment définir la liste d'un composant WebPart lors de l'exécution?
- 17. Comment définir le titre d'une page dans un composant joomla?
- 18. Wix, Heat et Wxi fichier
- 19. WIX: Comment définir dynamiquement le nom du fichier de sortie msi
- 20. Définition de iis: WebDirProperties d'un seul fichier dans WiX
- 21. Forcer Wix à aller faire une page de téléchargement pour un composant requis
- 22. Définir un autre fichier de configuration pour le proxy
- 23. WiX définir le dossier App_Data permission de modifier pour NetworkService
- 24. Comment inclure un fichier msi dans un projet d'installation Wix
- 25. Comment supprimer un composant de JFrame qui utilise BorderLayout
- 26. Wix CustomAction binaire SourceFile pas trouvé
- 27. Puis-je définir une licence personnalisée en utilisant WiX?
- 28. Dans Wix, peut-on définir un ComponentGroup et un répertoire en même temps?
- 29. composant JavaFX qui émule JTable
- 30. Composant de prévisualisation de fichier (C++/MFC)
J'ai résolu mon problème. Merci. – nagul