web-dev-qa-db-fra.com

Chemin relatif WiX vers le fichier source

J'ai une solution simple pour mon projet, qui fonctionne bien. Mais je n'arrive pas à comprendre comment rendre les chemins source relatifs. Quelqu'un peut-il m'aider?

  <Component Id="Bla.exe" Guid="*">
    <File Id="Bla.exe" Source="D:\Projects\Bla\Bla\bin\Debug\Bla.exe" KeyPath="yes" Checksum="yes"/>
  </Component>

Comment faire le chemin par rapport à la solution Wix? WiX et tous les fichiers nécessaires sont dans la même solution.

31
Christian Sauer

Vous pouvez utiliser le chemin relatif comme ceci:

    <File Id="Bla.exe" Source="..\bin\Debug\Bla.exe" KeyPath="yes" Checksum="yes"/>

OR

Vous pouvez ajouter un fichier de configuration à votre projet pour définir des variables communes. Pour ce faire, ajoutez un nouveau fichier "WiX Include" à votre projet, appelez-le config.wxi . Ensuite, dans votre fichier include, vous pouvez définir une variable SourceDir comme ceci:

<?xml version="1.0" encoding="utf-8"?>
<Include>
  <?define SourceDir = "D:\Projects\Bla\Bla\bin\Debug" ?>
</Include>

Maintenant, dans votre fichier .wxs, vous pouvez ajouter une référence au fichier de configuration en haut, par exemple:

<?xml version="1.0" encoding="UTF-8"?>
 <Wix xmlns="http://schemas.Microsoft.com/wix/2006/wi">
 <?include "config.wxi"?>

Ensuite, faites simplement référence à votre variable SourceDir comme ceci:

<File Id="Bla.exe" Source="$(var.SourceDir)\Bla.exe" KeyPath="yes" Checksum="yes"/>

En outre, il existe des variables de projet WiX que vous pouvez utiliser.

64
BryanJ

Il existe de nombreuses façons de le faire, mais personnellement, ce que j'aime faire, c'est de mettre mes projets d'installation d'applications dans différentes solutions. Je crée d'abord la solution d'application et j'utilise les commandes de post-construction pour publier le contenu dans un dossier de déploiement.

Dans mes projets d'installation, j'ai défini $ (var.SourceDir) = "..\deploy" puis $ (var.SourceDir)\foo.exe pour un chemin source.

2