Heim > Backend-Entwicklung > C++ > Wie lösen Assembly-Bindungsumleitungen Versionskonflikte in .NET-Anwendungen?

Wie lösen Assembly-Bindungsumleitungen Versionskonflikte in .NET-Anwendungen?

Mary-Kate Olsen
Freigeben: 2025-01-06 17:41:42
Original
836 Leute haben es durchsucht

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

Assembly-Bindungsumleitungen: Eine ausführliche Erklärung

Einführung

Assembly-Bindungsumleitungen spielen eine entscheidende Rolle bei der Lösung von Versionskonflikten zwischen Baugruppen. Dieser Artikel befasst sich mit den Mechanismen hinter Bindungsumleitungen, geht auf häufige Abfragen ein und bietet ein umfassendes Verständnis ihrer Funktionalität.

Bindungsumleitungsmechanismus

Eine Bindungsumleitung in der Assembly-Bindung Der Abschnitt „app.config“ gibt eine Zuordnung zwischen einer alten Version und einer neuen Version einer Assembly an. Wenn die Laufzeit auf die alte Version stößt, leitet sie den Ladevorgang automatisch auf die neue Version um.

Hauptversionsspezifität

Bindungsumleitungen geben normalerweise nur die Hauptversionsnummer in der an oldVersion- und newVersion-Attribute. Dies liegt daran, dass davon ausgegangen wird, dass die verbleibenden Versionsnummern (Nebenversion, Build, Revision) kompatibel sind. Wenn nicht explizit angegeben, versucht die Laufzeit, die neue Version mit denselben Neben-, Build- und Revisionsnummern wie die alte Version zu laden.

Versionsänderungen

Version Änderungen sind nicht auf Hauptversionen beschränkt. Bindungsweiterleitungen können verwendet werden, um einen beliebigen Versionsbereich auf eine bestimmte neue Version umzuleiten. Wenn jedoch die Hauptversion geändert wird, werden auch alle nachfolgenden Versionen umgeleitet, während Änderungen an Neben-, Build- oder Revisionsnummern innerhalb derselben Hauptversion keine Umleitung auslösen.

Beispiel

Betrachten Sie die folgende Bindungsumleitung:

In diesem Beispiel: Assemblys mit dem Namen „FooBar“ und einem öffentlichen Schlüsseltoken von „32ab4ba45e0a69a1“ wird zur Laufzeit von Version 7.0.0.0 auf Version 8.0.0.0 umgeleitet. Alle Neben-, Build- und Revisionsnummern in Version 7.0.0.0 werden automatisch auf ihre entsprechenden Gegenstücke in Version 8.0.0.0 umgeleitet.

Zusätzliche Hinweise

  • Bindungsumleitungen können auf alle Assemblys angewendet werden, nicht nur auf solche, die explizit von der Anwendung geladen werden.
  • Mehrere Bindungsumleitungen sind möglich für dieselbe Assembly angegeben werden, aber die Laufzeit wendet nur die spezifischste Umleitung an (z. B. für einen bestimmten Versionsbereich).
  • Umleitungen sind nicht transitiv. Wenn eine Assembly umgeleitet wird und auf eine andere Assembly verweist, die ebenfalls umgeleitet wird, wird die zweite Umleitung nicht angewendet.

Das obige ist der detaillierte Inhalt vonWie lösen Assembly-Bindungsumleitungen Versionskonflikte in .NET-Anwendungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage