Question

, voici la situation ici.

J'ai 2 sites asp.net + certaines applications Winform qui sont installés avec une configuration. Ils sont tous représentés sous forme de modules de fusion dans le projet d'installation.

À l'heure actuelle, lorsque nous voulons mettre à jour la version globale de l'application, nous devons mettre à jour toutes les versions en sites asp.net et des trucs. Je sais qu'il est possible de détecter la version dans l'information d'assemblage d'une application asp.net, ce qui est assez facile. La difficulté est ici pour détecter la version de configuration « globale ». (Dire ici que le site est la version 1.5, mais la configuration globale lui-même est la version 3.4).

À un moment donné, je pense que si je trouver le fichier setup.exe / setup.msi je pouvais le parcourir avec réflexion, mais ce n'est pas exactement la meilleure solution. Nous enregistrons chaque configuration par version sur le serveur sur un dossier distinct (ex c:. \ Setups \ produit 1.0 \ Setup.exe, c: \ Setup \ produit 1.5 \ Setup.exe, etc ..)

Toutes les suggestions?

Était-ce utile?

La solution

Définir la version de configuration "globale". Voulez-vous dire que chaque patch met à jour certaines mais pas toutes les assemblées, et donc la version d'un assemblage quelconque, ou même l'une des assemblées à tous, ne reflètent pas nécessairement le dernier patch installé?

3 options:

  • Gardez l'information globale de version dans chaque fichier de configuration et pousser les mises à jour à chaque configuration de chaque composant installé chaque fois (non recommandé).
  • Fournir un fichier de configuration partagé ou références d'autres configs à une config « principale », qui peut être référencé à partir de l'un des projets exécutables, et assurez-vous que config est mis à jour chaque fois.
  • Maintenir une clé de Registre contenant la version globale du logiciel.

Des trois, je choisirais la dernière, depuis l'installation et patcher est réparti sur plusieurs zones du système, mais chaque zone doit être en mesure de lire une clé de Registre du logiciel (si pas le mettre à jour). Le processus est pas difficile; vous pouvez référencer l'objet System.Win32.Registry statique pour obtenir les clés de base pour LocalMachine, CurrentUser, etc., et à partir de là, vous pouvez parcourir l'arborescence en naviguant à travers des objets RegistryKey (ou la création d'un à partir de zéro avec le chemin de la clé). Vous pouvez spécifier le chemin de clé avec un AppSetting dans les différents fichiers Web et app.config; cela ne devrait pas changer presque aussi souvent que la valeur de la clé elle-même.

Autres conseils

Si vous installez plusieurs packages d'un MSI, alors il est préférable de laisser le MSI répertorié dans ARP et la version de cette « configuration globale » sera facilement disponible pour l'avenir MSI. Sans savoir que la technologie que vous utilisez pour créer votre configuration, il est difficile de donner des conseils plus solides, mais dans WiX (Windows Installer XML) il vous suffit d'inclure un élément de mise à niveau qui prendra soin de automatiquement pour vous. La plupart des technologies devraient avoir un moyen pour vous de vérifier le courant d'installer la version.

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