Nous avons actuellement 4 installateurs pour notre logiciel client:Ecraser force de App.config lors de l'installation
- ClientSetupTest
- ClientSetupProduction
- ClientUpdateTest
- ClientUpdateProduction
Les seules différences entre eux sont que le programme d'installation contient les fichiers redistribuables Crystal Reports et Update ne NT. Test and Production spécifie uniquement l'environnement dans lequel ils s'exécutent et la seule différence réside dans une ligne du fichier Client.exe.config. Dumb, je sais, c'est pourquoi je les ai tous remplacés par un installateur après avoir supprimé Crystal Reports. Le nouveau programme d'installation écrit l'environnement sélectionné dans setup.config, référencé par l'attribut de fichier (see here).
L'attribut "file" est nouveau dans le fichier de configuration avec ce nouveau programme d'installation. Le problème que je rencontre est que si nous modifions le fichier Client.exe.config sur une ancienne installation, puis exécutez le nouveau programme d'installation, le fichier de configuration n'est jamais mis à jour avec l'attribut "fichier".
Existe-t-il un moyen de forcer la mise à jour d'un fichier? RemovePreviousVersions ne fonctionne pas exactement, car il s'agit d'un programme d'installation différent, à moins que je ne comprenne quelque chose. Mon idée actuelle, qui fonctionnera probablement, est d'ajouter du code dans la méthode OnBeforeInstall pour renommer l'ancien fichier Client.exe.config en un fichier de sauvegarde, donc il écrira toujours le nouveau. On dirait qu'il devrait y avoir une solution plus simple dans l'installateur lui-même, cependant. Des idées?
EDIT: renommer l'ancien fichier de configuration en Client.exe.config.old avant d'appeler base.OnBeforeInstall() ne fonctionnait pas. Il a renommé le fichier, mais n'a jamais écrit le nouveau.
Merci. Je vais donner une chance à l'option personnalisée. Je vais toujours avoir le problème de ne pas transférer leurs paramètres personnalisés, mais s'il a été modifié, je peux le détecter et copier l'ancienne configuration. –