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

Framework .NET Discussion :

GAC & Différentes versions d'une même assembly


Sujet :

Framework .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Xno
    Xno est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut GAC & Différentes versions d'une même assembly
    Bonjour à tous!!!

    Je voudrais vous soumettre l'interrogation qui se pose à moi concernant le mode de fonctionnement des assemblies dans le GAC.

    Disons que j'ai une application WinForms qui utilise une assembly signée et enregistrée dans le GAC. A cette assembly, j'ai mis le numéro de version suivant: 1.0.1000.0.

    Mettons que j'ai ajouté des fonctionnalités à cette assembly, je la recompile donc avec un numéro de version 1.0.2000.0. Le nom fort généré par l'utilitaire sn.exe restant le même. Je copie cette nouvelle version à la place de l'ancienne et je l'enregistre dans le GAC.

    Le souci est que mon application ne fonctionne plus car il fait référence à l'ancienne version (à la compilation). Pour que cela marche, il faut recompiler l'application, ce qui me semble aller à l'encontre des avantages liés à l'utilisation d'assemblies: mettre dans un même fichier les fonctions communes à plusieurs de mes applications.

    La question est:

    Quelle est la bonne méthode pour pouvoir mettre à jour et déployer de nouvelles versions de mon assembly sans pour autant être obligé de recompiler toutes les applications qui l'utilisent à chaque fois?

    Faut-il abandonner l'enregistrement dans le GAC, et préférer des assembies privés, ou alors ne pas modifier le numéro de version de mon assembly(Bonjour pour s'y retrouver après...)?


    Merci d'avance.

    8)

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut Re: [.NET] GAC & Différentes versions d'une même assembl
    Citation Envoyé par Xno
    Quelle est la bonne méthode pour pouvoir mettre à jour et déployer de nouvelles versions de mon assembly sans pour autant être obligé de recompiler toutes les applications qui l'utilisent à chaque fois?
    Le gac supporte plusieur version d'une même assembly.
    Dans ton exemple tout ce que tu as a faire c'est enregistrer les deux assembly dans le gac. Au lancement de ton app qui a été compilé avec la version 1.0.1000.0, .NET chargera en mémoire l'assembly correspondante tant dit que tout autre app qui utiliserais l'autre version chargerais ... l'autre version.

    Par contre tu ne peux effectivement pas modifier ton assembly et son num de version puis demander à ce que ton programme charge la nouvelle version sans une recompil. Enfin s'il un moyen mais pas de maniere simple

    Si tu veux en savoir plus dit le, je te donnerais la façon de charger dynamiquement ton assembly.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 55
    Par défaut
    je crois que la solution mis au point par .net pour faire face à ce probleme sont les assemblages publisher policy.
    Si jamais ton nouvel assemblage est parfaitement compatible avec l'ancien ( juste une correction de bug interne par exemple ) tu crée un assemblage qui sera chargé de la redirection. Un appel à la version de base sera redirigé vers la nouvelle.

    Je n'ai pas pratiqué mais tu dois pouvoir trouver des infos sur le sujet.

    [edit] j'avais loupé la partie où tu spécifie que tu as ajouté de nouvelles fonctionnalités... Dans ce cas les assemblies publisher policy ne sont pas adaptées, désolé

  4. #4
    Xno
    Xno est déconnecté
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 71
    Par défaut
    Merci pour vos réponses.

    Je vais chercher du côté des assemblies publisher policies pour voir ce qui est possible de faire.

    Comme j'ai développé une libraire "commune" à toutes mes applications WinForms, c'était juste pour connaître les contraintes liées au déploiement d'une nouvelle version de cette librairie. Développant jusqu'à présent en C++ sous Windows, j'étais plus habitué au "dll hell".

    Pour le chargement dynamique des assemblies par mon application, il est vrai que je n'y avais pas pensé. Je pense que je regarderai cette technique plus tard quand j'aurai un moment de libre, c'est toujours intéressant de connaître d'autres méthodes d'utilisation des assemblies.

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

Discussions similaires

  1. Différents rendus sous une même version IE7
    Par ranell dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 30/06/2010, 14h39
  2. Gestion de plusieurs versions d'une même interface
    Par ecoulees dans le forum ODI (ex-Sunopsis)
    Réponses: 2
    Dernier message: 28/05/2008, 16h20
  3. (VBA-E] Filtrage de différentes plages d'une même colonne
    Par ledab dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 25/03/2007, 12h05
  4. Plusieurs version d'une même App sur un même serveur
    Par Jeweller dans le forum XMLRAD
    Réponses: 27
    Dernier message: 14/02/2006, 11h33
  5. Sum différents sur sur une même table ...
    Par Saloucious dans le forum Langage SQL
    Réponses: 4
    Dernier message: 05/10/2005, 15h51

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