Anwendungskonfigurationsdateien
Eine Anwendungskonfigurationsdatei ist eine XML-Datei, die zum Steuern der Assemblybindung verwendet wird. Sie kann eine Anwendung von der Verwendung einer Parallelassembly zu einer anderen Version derselben Assembly umleiten. Dies wird pro Anwendungskonfigurationbezeichnet. Eine Anwendungskonfigurationsdatei gilt nur für ein bestimmtes Anwendungsmanifest und abhängige Assemblys. Isolierte Komponenten, die mit einem eingebetteten ISOLATIONAWARE_MANIFEST_RESOURCE_ID Manifest kompiliert wurden, erfordern eine separate Anwendungskonfigurationsdatei. Manifeste, die mit CreateActCtx- verwaltet werden, erfordern eine separate Anwendungskonfigurationsdatei.
Die durch eine Anwendungskonfigurationsdatei angegebene Umleitung kann die assemblyversionen außer Kraft setzen, die durch Anwendungsmanifeste und Publisher-Konfigurationsdateienangegeben werden. Wenn beispielsweise eine Herausgeberkonfigurationsdatei angibt, dass alle Verweise auf eine Assembly von Version 1.0.0.0 auf 1.1.0.0 umgeleitet werden, kann eine Anwendungskonfigurationsdatei verwendet werden, um eine bestimmte Anwendung zur Verwendung von Version 1.0.0.0 umzuleiten. Eine Anwendungskonfigurationsdatei gilt nur für das angegebene Anwendungsmanifest und abhängige Assemblys.
Eine vollständige Auflistung des XML-Schemas finden Sie unter Anwendungskonfigurationsdateischema.
Anwendungskonfigurationsdateien weisen die Elemente und Attribute auf, die in der folgenden Tabelle angezeigt werden.
Element | Attribute | Erforderlich |
---|---|---|
Konfiguration | Ja | |
Windows- | Ja | |
publisherPolicy- | Ja | |
anwenden | Ja | |
Laufzeit- | Nein | |
assemblyBinding- | Ja | |
Nein | ||
privatePath- | Ja | |
Abhängigkeits- | Nein | |
abhängige | Ja | |
assemblyIdentity- | Ja | |
Typ | Ja | |
Namen | Ja | |
Sprache | Nein | |
processorArchitecture | Ja | |
Version | Ja | |
publicKeyToken- | Nein | |
bindingRedirect- | Ja | |
oldVersion- | Ja | |
newVersion- | Ja |
Dateispeicherort
Anwendungskonfigurationsdateien müssen an demselben Speicherort wie das Anwendungsmanifest der Anwendunginstalliert werden.
Syntax des Dateinamens
Der Name einer Anwendungskonfigurationsdatei ist der Name der ausführbaren Anwendung, gefolgt von .config.
Beispielsweise würde eine Anwendungskonfigurationsdatei, die auf Example.exe verweist, oder Example.dll die im folgenden Beispiel gezeigte Dateinamensyntax verwenden. Sie können das Feld für <Ressourcen-ID> weglassen, wenn sie die Konfigurationsdatei als separate Datei installieren oder die Ressourcen-ID 1 ist.
example.exe.<Ressourcen-ID>.config
example.dll.<Ressourcen-ID>.config
Elemente
Bei Namen von Elementen und Attributen wird die Groß-/Kleinschreibung beachtet. Bei den Werten von Elementen und Attributen wird die Groß-/Kleinschreibung nicht beachtet, mit Ausnahme des Werts des Typattributes.
Konfiguration
Ein Containerelement für die Windows und Laufzeit elemente einer Anwendungskonfigurationsdatei. Erforderlich.
Fenster
Enthält die Teile der Anwendungskonfigurationsdatei, die für die Umleitung von Win32-Assemblys gelten.
Anmerkung
Der Autor einer Anwendung sollte keine Konfigurationsdatei mit einem Windows-Unterelement als Teil ihrer Anwendung enthalten. Dies kann zulässig sein, wenn der einzige Zweck der Konfigurationsdatei darin besteht, die privatePath- Funktionalität eines Elements zu aktivieren. Das Probing-Elements ist auf Systemen vor Windows Server 2008 R2 und Windows 7 nicht verfügbar.
publisherPolicy
Gibt an, ob die Herausgeberrichtlinie angewendet werden soll.
Dieses Element weist die in der folgenden Tabelle gezeigten Attribute auf.
Attribut | Beschreibung |
---|---|
anwenden | Der Wert "Ja" wendet die Herausgeberrichtlinie an. Dies ist die Standardeinstellung. Der Wert "no" wendet die Herausgeberrichtlinie nicht an. |
Laufzeit
Enthält die Teile der Anwendungskonfigurationsdatei, die für die Umleitung von .Net-Assemblys gelten.
assemblyBinding
Enthält die Umleitungsinformationen für die Anwendung und die Assembly, die von dieser Anwendungskonfigurationsdatei betroffen ist. Das erste Unterelement assemblyBinding- muss eine assemblyIdentity- sein, die die Anwendung identifiziert.
Ab Windows Server 2008 R2 und Windows 7 kann ein assemblyBinding--Element ein Probing Unterelement enthalten.
Sondierung
Ein optionales Unterelement eines assemblyBinding--Elements, das die Suche nach Assemblys in zusätzliche Verzeichnisse erweitert. Die zusätzlichen Verzeichnisse müssen nicht Unterverzeichnisse des Verzeichnisses der Assembly sein.
Anmerkung
Dieses Element ist auf Systemen vor Windows Server 2008 R2 und Windows 7 nicht verfügbar und kann nur innerhalb eines Windows-Elements verwendet werden.
Dieses Element weist die in der folgenden Tabelle gezeigten Attribute auf.
Attribut | Beschreibung |
---|---|
privatePath- | Gibt die relativen Pfade von Unterverzeichnissen des Basisverzeichnisses der Anwendung an, die Assemblys enthalten können. Maximal neun Unterverzeichnispfade können angegeben werden. Trennen Sie jeden Unterverzeichnispfad durch ein Semikolon. |
Sie können den speziellen Doppelpunktbezeichner in einem Pfad verwenden, um das übergeordnete Verzeichnis des aktuellen Verzeichnisses zu kennzeichnen. Maximal zwei Ebenen oberhalb des aktuellen Verzeichnisses können mit doppelten Punkten angegeben werden. Verwenden Sie keine dreifachen Punkte. Beispielsweise überprüft eine Anwendung mit dem folgenden Probing Element zusätzliche Verzeichnisse für eine Assembly.
<probing privatePath="bin;..\bin2\subbin;bin3"/>
Abhängigkeit
Ein Containerelement für mindestens ein abhängiges. Jede abhängigEnAssembly- kann innerhalb genau einer Abhängigkeitsein. Dieses Element hat keine Attribute. Wahlfrei.
dependentAssembly
Das erste Unterelement muss ein assemblyIdentity--Element sein, das die parallele Assembly identifiziert, die von der Anwendungskonfigurationsdatei umgeleitet wird. Ein abhängige hat keine Attribute.
assemblyIdentity
Als erstes Unterelement eines assemblyBinding--Elements beschreibt assemblyIdentity eine Anwendung und identifiziert sie eindeutig. Die Anwendungskonfigurationsdatei leitet die Bindung dieser Anwendung an parallele Assemblys um. Beispielsweise gibt die folgende assemblyIdentity an, dass sich die Anwendungskonfigurationsdatei auf die Bindung der Anwendung mysampleApp an parallele Assemblys auswirkt. Die umgeleiteten Assemblys werden in einer abhängigenidentifiziert.
<assemblyIdentity processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>
Als erstes Unterelement eines abhängigAssembly-Elements beschreibt assemblyIdentity eine parallele Assembly, von der die Anwendung abhängt. Die Anwendungskonfigurationsdatei konfiguriert die Identität dieser erforderlichen Assembly neu. Die folgende assemblyIdentity und bindingRedirect eine Abhängigkeit von Microsoft.Windows.SampleAssembly von Version 2.0.0.0 in Version 2.1.0.0 neu konfigurieren.
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.SampleAssembly"
processorArchitecture="x86"
publicKeyToken="0000000000000000"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="2.1.0.0"/>
</dependentAssembly>
</dependency>
Beachten Sie, dass jedes assemblyIdentity- in einem abhängigAssembly- genau mit dem assemblyIdentity- im eigenen Assemblymanifestübereinstimmen muss.
Das assemblyIdentity--Element weist die folgenden Attribute auf. Es hat keine Unterelemente.
Attribut | Beschreibung |
---|---|
Typ | Der Wert muss win32 (Kleinbuchstabe) sein. Erforderlich. |
Namen | Das Name-Attribut identifiziert die Anwendung, die von der Anwendungskonfigurationsdatei oder der Umleitung der Assembly betroffen ist. Verwenden Sie das folgende Format für den Namen: Organization.Division.Name. Erforderlich. Beispiel: Microsoft.Windows.MysampleApp oder Microsoft.Windows.MysampleAsm. |
Sprache | Identifiziert die Sprache. Wahlfrei. Geben Sie für eine assemblyIdentity-, die auf eine Assembly verweist, wenn die Assembly sprachspezifisch ist, den DHTML-Sprachcode an. Wenn die Assembly für die weltweite Verwendung (sprachneutral) ist, legen Sie den Wert als "*" fest. |
processorArchitecture | Gibt den Prozessor an, der die Anwendung ausführt. |
Version | Gibt die Version der Anwendung oder Assembly an. Verwenden Sie vierteilige Versionssyntax: mmmm.nnnn.oooo.pppp. Erforderlich. |
publicKeyToken- | Bei einer assemblyIdentity- auf eine Assembly verweist, wird eine 16-stellige hexadezimale Zeichenfolge, die die letzten 8 Bytes des SHA-1-Hashs des öffentlichen Schlüssels darstellt, unter dem die Assembly signiert ist. Der öffentliche Schlüssel, der zum Signieren des Katalogs verwendet wird, muss mindestens 2048 Bit sein. Erforderlich für alle gemeinsam genutzten Parallelassemblys. |
bindingRedirect
Das bindingRedirect-Element enthält Umleitungsinformationen für die Bindung der Assembly. Jede bindingRedirect- muss in genau einem abhängigenenthalten sein. Die vierteilige Versionssyntax der neuen Version und die alte Version müssen die gleichen Haupt- und Nebenversionen angeben.
Dieses Element weist die in der folgenden Tabelle gezeigten Attribute auf.
Attribut | Beschreibung |
---|---|
oldVersion- | Gibt die Assemblyversion an, die überschrieben und umgeleitet wird. Verwenden Sie die vierteilige Versionssyntax nnnnn.n.n.nnnnn. Geben Sie einen Bereich von Versionen durch einen Gedankenstrich ohne Leerzeichen an. Beispiel: 2.14.3.0 oder 2.14.3.0 2.16.0.0. Erforderlich. |
newVersion- | Gibt die Ersatzassemblyversion an. Verwenden Sie vierteilige Versionssyntax nnnnn.n.n.nnnnn. |
Bemerkungen
Anwendungskonfigurationsdateien geben keine Dateien an.
Beispiel
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.10.0"/>
<bindingRedirect oldVersion="1.0.50.2011-1.0.60.65535" newVersion="1.0.70.0"/>