Question

Nous avons actuellement 4 programmes d'installation pour notre logiciel client:

  • ClientSetupTest
  • ClientSetupProduction
  • ClientUpdateTest
  • ClientUpdateProduction

La seule différence entre eux est que le programme d'installation contient les fichiers redistribuables Crystal Reports et que Update ne le fait pas. Test and Production spécifie simplement l'environnement dans lequel ils s'exécutent et la seule différence entre le fichier Client.exe.config et une ligne.

Dumb, je sais, c'est pourquoi je les ai tous remplacés par un seul programme d'installation après m'être débarrassé de Crystal Reports. Le nouvel installateur écrit l’environnement sélectionné dans setup.config, qui est référencé par l’attribut de fichier ( voir ici ).

Le " fichier " L'attribut 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écutons le nouvel installateur, le fichier de configuration ne sera jamais mis à jour avec le fichier "" fichier". attribut.

Existe-t-il un moyen de le forcer à mettre à jour un fichier? RemovePreviousVersions ne fonctionne pas exactement, car il s'agit d'un programme d'installation différent, à moins que je ne comprenne mal quelque chose. Mon idée actuelle, qui fonctionnera probablement, est d’ajouter du code dans la méthode OnBeforeInstall pour renommer l’ancien Client.exe.config en fichier de sauvegarde afin qu’il écrive toujours le nouveau. On dirait qu'il devrait y avoir une solution plus simple au sein même du programme d'installation. Des idées?

MODIFIER : renommer l'ancien fichier de configuration en Client.exe.config.old avant d'appeler base.OnBeforeInstall () n'a pas fonctionné. Il a renommé le fichier mais n’a jamais écrit le nouveau.

Était-ce utile?

La solution

Windows Installer ne met pas à jour un fichier modifié .

  

Les fichiers non versionnés sont des données utilisateur — Si la date de modification est ultérieure   que la date de création du fichier sur l'ordinateur, ne l'installez pas   le fichier car les personnalisations de l'utilisateur seraient supprimées. Si le modifié   et les dates de création sont les mêmes, installez le fichier. Si la date de création   est postérieure à la date de modification, le fichier est considéré comme non modifié,   installez le fichier.

Vous avez quelques options:

  • inclut une action personnalisée qui modifie le fichier en place. Il peut s’agir d’un script ou de code .NET .

  • faites ce que vous dites - déplacez le fichier existant hors du chemin. Le programme d'installation ne s'arrête pas là-dessus. Mais vous devez vous assurer que cela se passe dans l'ordre que vous imaginez. Vous devrez peut-être Orca pour comprendre la commande .

  • inclut une option personnalisée permettant de définir la date de création sur "aujourd'hui". Cela devrait être très simple avec une action personnalisée scriptée, en utilisant le Scripting.FileSystemObject . Ensuite, l’installateur Windows l’écrasera.

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