/ / Comment ne pas copier un fichier lors d’installations ultérieures? - wix, wix3.7

Comment ne pas copier un fichier dans les installations suivantes? - wix, wix3.7

Dans Product.wxs, j'ai défini Schedule = "afterInstallInitialize" dans MajorUpgrade afin que, en cas d'échec de l'installation, la version précédente soit restaurée.

Notre service Windows utilise app.config que le programme d'installation a copié sur la machine installée. Nous faisons cela en incluant la ligne ci-dessous dans le fichier Product.wxs:

<Component Id="Config" Win64="yes">
<File Source="$(var.WixWindowsService2012.TargetDir)WixWindowsService2012.exe.config"
Name="WixWindowsService2012.exe.config"
Vital="yes" KeyPath="yes" />
</Component>

Nous voulons uniquement copier ce fichier app.config lors de la première installation et nous ne voulons PAS le copier dans les installations suivantes.

Lorsque je commente l'élément de composant ci-dessus dansProduct.wxs, l’installation a échoué car, lors de l’installation, il supprime le fichier app.config du dossier installé et, le service Windows nécessitant son exécution, l’installation échoue.

Comment puis-je effectuer l'installation pour ne pas copier le fichier app.config dans le dossier installé si le fichier app.config existe déjà?

Je vous remercie.

Réponses:

0 pour la réponse № 1

Le problème est que le RemoveExistingProducts dela mise à niveau supprime le fichier, puis la mise à niveau entrante installe le nouveau, comme indiqué dans la liste de diffusion WiX. RemoveExistingProducts doit être juste avant InstallFinalize et après InstallExecute à la fin.