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)
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 :wink:
Si tu veux en savoir plus dit le, je te donnerais la façon de charger dynamiquement ton assembly.