Maison > développement back-end > C++ > Comment les redirections de liaison d'assembly résolvent-elles les conflits de versions dans les applications .NET ?

Comment les redirections de liaison d'assembly résolvent-elles les conflits de versions dans les applications .NET ?

Mary-Kate Olsen
Libérer: 2025-01-06 17:41:42
original
870 Les gens l'ont consulté

How Do Assembly Binding Redirects Resolve Version Conflicts in .NET Applications?

Redirections de liaison d'assembly : une explication approfondie

Introduction

Les redirections de liaison d'assembly jouent un rôle crucial dans la résolution des conflits de versions entre les assemblys. Cet article examine les mécanismes derrière les redirections de liaison, répond aux requêtes courantes et fournit une compréhension complète de leurs fonctionnalités.

Mécanisme de redirection de liaison

Une redirection de liaison dans la liaison d'assemblage La section du fichier app.config spécifie un mappage entre une ancienne version et une nouvelle version d'un assembly. Lorsque le runtime rencontre l'ancienne version, il redirige automatiquement le chargement vers la nouvelle version.

Spécificité de la version majeure

Les redirections de liaison spécifient généralement uniquement le numéro de version majeure dans le Attributs oldVersion et newVersion. En effet, les numéros de version restants (mineur, build, révision) sont supposés être compatibles. S'il n'est pas explicitement spécifié, le moteur d'exécution tentera de charger la nouvelle version avec les mêmes numéros mineurs, de build et de révision que l'ancienne version.

Modifications de version

Version les modifications ne sont pas limitées aux versions majeures. Les redirections de liaison peuvent être utilisées pour rediriger n’importe quelle plage de versions vers une nouvelle version spécifique. Cependant, si la version majeure est modifiée, toutes les versions suivantes sont également redirigées, tandis que les modifications apportées aux numéros mineurs, de build ou de révision au sein de la même version majeure ne déclenchent pas de redirection.

Exemple

Considérez la redirection de liaison suivante :

Dans cet exemple, assemblys avec un nom de "FooBar" et un jeton de clé publique de "32ab4ba45e0a69a1" sera redirigé de la version 7.0.0.0 vers la version 8.0.0.0 au moment de l'exécution. Tous les numéros mineurs, de build et de révision de la version 7.0.0.0 seront automatiquement redirigés vers leurs homologues correspondants dans la version 8.0.0.0.

Notes supplémentaires

  • Les redirections de liaison peuvent être appliquées à n’importe quel assembly, pas seulement à ceux chargés explicitement par l’application.
  • Liaison multiple les redirections peuvent être spécifiées pour le même assembly, mais le runtime n'appliquera que la redirection la plus spécifique (par exemple, pour une plage de versions spécifique).
  • Les redirections ne sont pas transitives. Si un assembly est redirigé et qu'il référence un autre assembly également redirigé, la deuxième redirection ne sera pas appliquée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal