Freigeben über


Assemblyversionsverwaltung

Alle Versionsverwaltungen von Assemblys, die die Common Language Runtime verwenden, werden auf Assemblyebene ausgeführt. Die spezifische Version einer Assembly und die Versionen abhängiger Assemblys werden im Manifest der Assembly aufgezeichnet. Die Standardversionsrichtlinie für die Laufzeit besteht darin, dass Anwendungen nur mit den Versionen ausgeführt werden, mit denen sie erstellt und getestet wurden, es sei denn, sie werden von der expliziten Versionsrichtlinie in Konfigurationsdateien außer Kraft gesetzt (die Anwendungskonfigurationsdatei, die Herausgeberrichtliniendatei und die Administratorkonfigurationsdatei des Computers).

Die Laufzeit führt mehrere Schritte aus, um eine Assemblybindungsanforderung aufzulösen:

  1. Überprüft den ursprünglichen Assemblyverweis, um die Version der Assembly zu bestimmen, die gebunden werden soll.

  2. Sucht nach allen anwendbaren Konfigurationsdateien, um die Versionsrichtlinie anzuwenden.

  3. Bestimmt die richtige Assembly aus dem ursprünglichen Assemblyverweis und allen in den Konfigurationsdateien angegebenen Umleitungen und bestimmt die Version, die an die aufrufende Assembly gebunden werden soll.

  4. Überprüft den globalen Assemblycache, Codebasen, die in den Konfigurationsdateien angegeben sind, und anschließend das Verzeichnis der Anwendung sowie deren Unterverzeichnisse mithilfe der Probingregeln, die unter "Wie die Laufzeit Assemblys findet" erläutert werden.

Die folgende Abbildung zeigt die folgenden Schritte:

Diagramm, das Schritte in der Auflösung der Assemblybindungsanforderung zeigt.

Weitere Informationen zum Konfigurieren von Anwendungen finden Sie unter Konfigurieren von Apps. Weitere Informationen zur Bindungsrichtlinie finden Sie unter How the runtime locates assemblies.

Versionsinformationen

Jede Assembly verfügt über zwei unterschiedliche Methoden zum Ausdrücken von Versionsinformationen:

  • Die Versionsnummer der Assembly, die zusammen mit dem Assemblynamen und den Kulturinformationen zur Identität der Assembly gehört. Diese Nummer wird von der Common Language Runtime zum Erzwingen von Versionsrichtlinien verwendet und spielt zur Laufzeit eine Schlüsselrolle im Vorgang der Typauflösung.

  • Eine Informationsversion, bei der es sich um eine Zeichenfolge handelt, die zusätzliche Versionsinformationen nur zu Informationszwecken darstellt.

Assembly-Versionsnummer

Jede Assembly hat eine Versionsnummer als Teil ihrer Identität. Daher werden zwei Assemblys, die sich je nach Versionsnummer unterscheiden, von der Laufzeit als völlig unterschiedliche Assemblys betrachtet. Diese Versionsnummer wird physisch als vierteilige Zeichenfolge mit dem folgenden Format dargestellt:

< Hauptversion>.<Nebenversion>.<Buildnummer>.<Revision>

Beispielsweise gibt Version 1.5.1254.0 1 als Hauptversion an, 5 als Nebenversion, 1254 als Buildnummer und 0 als Revisionsnummer.

Die Versionsnummer wird im Assemblymanifest zusammen mit anderen Identitätsinformationen gespeichert, einschließlich assemblyname und öffentlichem Schlüssel sowie Informationen zu Beziehungen und Identitäten anderer Assemblys, die mit der Anwendung verbunden sind.

Wenn eine Assembly erstellt wird, zeichnet das Entwicklungstool Abhängigkeitsinformationen für jede Assembly auf, auf die im Assemblymanifest verwiesen wird. Die Laufzeit verwendet diese Versionsnummern in Verbindung mit konfigurationsinformationen, die von einem Administrator, einer Anwendung oder einem Herausgeber festgelegt wurden, um die richtige Version einer referenzierten Assembly zu laden.

Die Laufzeit unterscheidet zum Zweck der Versionskontrolle zwischen normalen Assemblys und Assemblys mit starkem Namen. Die Version wird nur bei Assemblys mit starkem Namen überprüft.

Informationen zum Angeben von Versionsbindungsrichtlinien finden Sie unter Konfigurieren von Apps. Informationen dazu, wie die Laufzeit Versionsinformationen verwendet, um eine bestimmte Assembly zu finden, finden Sie unter How the runtime locates assemblies.

Assemblyinformationsversion

Die Informationsversion ist eine Zeichenfolge, die nur zu Informationszwecken zusätzliche Versionsinformationen an eine Assembly anfügt. diese Informationen werden zur Laufzeit nicht verwendet. Die textbasierte Informationsversion entspricht dem Marketingtext des Produkts, der Verpackung oder dem Produktnamen und wird nicht zur Laufzeit verwendet. Beispielsweise könnte eine Informationsversion "Common Language Runtime Version 1.0" oder "NET Control SP 2" sein. Auf der Registerkarte "Version" des Dialogfelds "Dateieigenschaften" in Microsoft Windows werden diese Informationen im Element "Produktversion" angezeigt.

Hinweis

Obwohl Sie beliebigen Text angeben können, erscheint während der Kompilierung eine Warnmeldung, wenn sich die Zeichenkette nicht im Format der Assemblyversion befindet oder wenn sie in diesem Format ist, aber Platzhalter enthält. Diese Warnung ist harmlos.

Die Informationsversion wird mithilfe des benutzerdefinierten Attributs System.Reflection.AssemblyInformationalVersionAttributedargestellt. Weitere Informationen zum Attribut "Informationsversion" finden Sie unter "Assembly-Attribute festlegen".

Siehe auch