Question

J'ai rencontré plusieurs sources indiquant de scinder un fichier d'installation WiX en plusieurs parties (variables, composants, etc.) à l'aide de fichiers d'inclusion (.wxi). Cela me semble parfaitement logique, alors j’ai pris les & Lt; composants & Gt; Nœuds hors du fichier .wxs et mettez-les dans un fichier séparé, mais lorsque j'essaie de compiler le projet dans Visual Studio 2008, une erreur se produit pour chaque < ComponentRef > indiquant qu'il s'agit d'une & "; référence non résolue au symbole" ... "dans la section" Produit: {...} "&"; ".

J'ai essayé d'utiliser le <? include & "Nom du fichier &";? > balise dans mon fichier Product.wxs, mais cela semble casser la validation du schéma. Si c’est le moyen de l’inclure, faut-il aller?

Les fichiers que j'ai sont les suivants.

Product.wxs

<?xml version="1.0" encoding="utf-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Product ...>
    <Package .../>
    <Media .../>
    <Directory Id="TARGETDIR" Name="SourceDir">
    </Directory>
    <Feature Id="MainProgram" Level="1">
      <ComponentRef Id="ProductComponent" />
      <Feature Id="ContextMenu" Level="2">
        <ComponentRef Id="ContextMenuComponent" />
      </Feature>
    </Feature>
  </Product>
</Wix>

Composants.wxi

<?xml version="1.0" encoding="utf-8"?>
<Include>
  <Fragment>
    <Component Id="ProductComponent" ...>
      <File .../>
    </Component>
    <Component Id="ContextMenuComponent" ...>
      <RegistryKey .../>
    </Component>
  </Fragment>
</Include>

Comment puis-je le créer dans Visual Studio? Écrire la compilation semble plus simple, mais ce n’est pas un problème pour le moment.

Était-ce utile?

La solution

Les fichiers d'inclusion doivent être considérés comme des fichiers d'en-tête. Vous souhaitez vraiment les utiliser uniquement pour déclarer des variables communes, etc., que vous devez partager entre plusieurs .wxs fichiers.

.

Mon projet utilise environ 10 fichiers .wxs et un seul fichier .wxi dans lequel je définis le code du produit, le code de mise à niveau, etc.

Pour une meilleure idée de ce dont je parle, consultez les questions SO sur les astuces Wix < !> amp; Meilleures pratiques et Fragments WiX ainsi que, comme toujours, la documentation dans Wix.chm

Autres conseils

Essayez d’utiliser l’extension WXS plutôt que WXI. J'ai cassé le mien et utilisé WXS comme extension, et cela a fonctionné. Tous les fichiers WXS du projet sont transmis au compilateur wix par wixproj.

J'ai trouvé cette question à la recherche de mon problème et je me suis dit que j'ajouterais mon correctif si quelqu'un venait de chez moi.

Si vous utilisez un fichier wixproj pour compiler à partir de Visual Studio, il semble que ce type de projet ne prend pas en charge les liens de fichiers (Ajouter un élément existant ... Ajouter en tant que lien). Vous vous retrouverez avec les liens dans votre projet, mais lors de la compilation, il se plaindra de la présence de symboles non résolus.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top