IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Contrôle récurrent de la version d'un assembly


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 31
    Points : 25
    Points
    25
    Par défaut Contrôle récurrent de la version d'un assembly
    Je cherche à contrôler la version d'un assembly de façon régulière :

    exemple de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    string version;
    while(true)
    {
      version = System.Reflection.Assembly.LoadFromFile(fichier).GetName().Version.ToString();
    }
    Un truc dans le genre.

    Sauf que, quand je change le fichier à charger par le même, mais avec une version différente, cela ne fonctionne pas. Il faut redémarrer l'application.

    Avez vous une idée ?

    Merci

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    LoadFromFile met en cache le résultat il me semble ce qui fait qu'au premier appel le fichier est chargé, mis en mémoire, et au second appel (et ainsi de suite) c'est cette copie chargée qui est utilisée.
    Pas moyen de contourner ce comportement, sauf en passant par des AppDomain.

    Ce point mis à part, ce que tu fais m'a l'air affreux. Je ne vois pas ce qui pourrai justifier ça, en as-tu vraiment besoin ?!

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 31
    Points : 25
    Points
    25
    Par défaut
    Sans doute que c'est affreux, mais voici commence cela fonctionne.

    Je dispose d'une Interface de supervision qui gère des webservices.
    Cette Interface est contactée à distance pour effectuer plusieurs opérations mais peut aussi être utilisée en local.
    Entre autres, elle peut mettre à jour ces webservices.
    Webservices qui peuvent également être mis à jour de manière manuelle (sans utiliser l'interface).

    Hors, une des commandes à distance est de demander la version du webservice actuellement installé.

    Pour ce faire, mon interface de supervision va regarder dans un des assemblys du projet. (le while(true) n'était là qu'a titre d'exemple)

    Sauf que, d'après ce que j'ai compris, une fois chargés, les assemblys sont conservés en mémoire.

    Du coup, si ils sont mis à jour, je ne peux plus le savoir ?

  4. #4
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Renseignes toi sur les domaines d'application (AppDomain, y'a plein de trucs dessus). C'est le seul moyen de décharger une assembly (ce qui ferai donc que pour mettre à jour ton webservice il faudrait que tu le stoppes, que tu décharges le domaine, que tu le recharge et que tu recharge tes assemblies).

    On doit pouvoir faire plus propre mais l'idée de base doit être ça ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/09/2013, 15h58
  2. Réponses: 3
    Dernier message: 18/03/2009, 15h48
  3. Erreur : Conflits entre différentes versions du même assembly
    Par Steven62 dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 28/04/2008, 18h37
  4. Contrôle de version de l'application = Subversion ?
    Par Revan777 dans le forum Autres
    Réponses: 7
    Dernier message: 19/01/2006, 17h05
  5. GAC & Différentes versions d'une même assembly
    Par Xno dans le forum Framework .NET
    Réponses: 3
    Dernier message: 25/11/2005, 11h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo