Anwendungskonfigurationsdateien
Eine Anwendungskonfigurationsdatei ist eine XML-Datei, die zum Steuern der Assemblybindung verwendet wird. Es kann eine Anwendung von der Verwendung einer Version einer parallelen Assembly zu einer anderen Version derselben Assembly umleiten. Dies wird als anwendungsspezifische Konfiguration bezeichnet. 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 werden, erfordern eine separate Anwendungskonfigurationsdatei. Manifeste, die mit CreateActCtx verwaltet werden, erfordern eine separate Anwendungskonfigurationsdatei.
Die durch eine Anwendungskonfigurationsdatei angegebene Umleitung kann die Assemblyversionen überschreiben, die von Anwendungsmanifesten und Herausgeberkonfigurationsdateien angegeben werden. Wenn beispielsweise eine Herausgeberkonfigurationsdatei angibt, dass alle Verweise auf eine Assembly von Version 1.0.0.0 zu 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 Liste des XML-Schemas finden Sie unter Anwendungskonfigurationsdateischema.
Anwendungskonfigurationsdateien enthalten die in der folgenden Tabelle gezeigten Elemente und Attribute.
Element | Attribute | Erforderlich |
---|---|---|
configuration | Ja | |
windows | Ja | |
publisherPolicy | Ja | |
Anwenden | Ja | |
Laufzeit | Nein | |
assemblyBinding | Ja | |
Sondieren | Nein | |
Privatepath | Ja | |
Abhängigkeit | Nein | |
dependentAssembly | Ja | |
assemblyIdentity | Ja | |
type | Ja | |
name | Ja | |
language | Nein | |
Processorarchitecture | Ja | |
version | Ja | |
publicKeyToken | Nein | |
bindingRedirect | Ja | |
oldVersion | Ja | |
Newversion | Ja |
Speicherort
Anwendungskonfigurationsdateien müssen am selben Speicherort wie das Anwendungsmanifest der Anwendung installiert werden.
Dateinamensyntax
Der Name einer Anwendungskonfigurationsdatei ist der Name der ausführbaren Anwendungsdatei, gefolgt von .config.
Beispielsweise würde eine Anwendungskonfigurationsdatei, die auf Example.exe oder Example.dll verweist, die im folgenden Beispiel gezeigte Dateinamensyntax verwenden. Sie können das Feld für <die Ressourcen-ID> weglassen, wenn Sie die Konfigurationsdatei als separate Datei installieren oder wenn 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 Runtimeelemente einer Anwendungskonfigurationsdatei. Erforderlich.
Windows
Enthält die Teile der Anwendungskonfigurationsdatei, die für die Umleitung von Win32-Assemblys gelten.
Hinweis
Der Autor einer Anwendung sollte keine Konfigurationsdatei mit einem Windows-Unterelement als Teil seiner Anwendung einschließen. Dies kann zulässig sein, wenn der einzige Zweck der Konfigurationsdatei darin besteht, die privatePath-Funktionalität eines Überprüfungselements zu aktivieren. Das Überprüfungselement ist auf Systemen vor Windows Server 2008 R2 und Windows 7 nicht verfügbar.
publisherPolicy
Gibt an, ob eine Herausgeberrichtlinie angewendet werden soll.
Dieses Element verfügt über die in der folgenden Tabelle aufgeführten Attribute.
attribute | BESCHREIBUNG |
---|---|
Anwenden | Der Wert "ja" wendet die Herausgeberrichtlinie an. Dies ist die Standardeinstellung. Der Wert "no" gilt nicht für die Herausgeberrichtlinie. |
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 sind. Das erste Unterelement von assemblyBinding muss eine assemblyIdentity sein, die die Anwendung identifiziert.
Ab Windows Server 2008 R2 und Windows 7 kann ein assemblyBinding-Element ein Unterelement zum Überprüfen enthalten.
Prüfen
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.
Hinweis
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 verfügt über die in der folgenden Tabelle aufgeführten Attribute.
attribute | BESCHREIBUNG |
---|---|
Privatepath | Gibt die relativen Pfade von Unterverzeichnissen des Basisverzeichnisses der Anwendung an, die Assemblys enthalten können. Es können maximal neun Unterverzeichnispfade angegeben werden. Trennen Sie jeden Unterverzeichnispfad durch ein Semikolon. |
Sie können den Doppelpunkt-Sonderbezeichner in einem Pfad verwenden, um das übergeordnete Verzeichnis des aktuellen Verzeichnisses anzugeben. Es können nicht mehr als zwei Ebenen über dem aktuellen Verzeichnis mit Doppelpunkten angegeben werden. Verwenden Sie keine dreifachen Punkte. Beispielsweise überprüft eine Anwendung, die das folgende Überprüfungselement verwendet, zusätzliche Verzeichnisse für eine Assembly.
<probing privatePath="bin;..\bin2\subbin;bin3"/>
dependency
Ein Containerelement für mindestens eine abhängigeAssembly. Jede dependentAssembly kann sich in genau einer Abhängigkeit befinden. Dieses Element weist keine Attribute auf. Optional.
dependentAssembly
Das erste Unterelement muss ein assemblyIdentity-Element sein, das die parallele Assembly identifiziert, die von der Anwendungskonfigurationsdatei umgeleitet wird. Ein dependentAssembly verfügt über 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. Die folgende assemblyIdentity gibt beispielsweise an, dass sich die Anwendungskonfigurationsdatei auf die Bindung der Anwendung mysampleApp an parallele Assemblys auswirkt. Die Assemblys, die umgeleitet werden, werden in einer dependentAssembly identifiziert.
<assemblyIdentity processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>
Als erstes Unterelement eines dependentAssembly-Elements beschreibt assemblyIdentity eine parallele Assembly, von der die Anwendung abhängt. Die Anwendungskonfigurationsdatei konfiguriert die Identität dieser erforderlichen Assembly neu. Beispielsweise konfigurieren die folgende assemblyIdentity und bindingRedirect eine Abhängigkeit von Microsoft.Windows.SampleAssembly von Version 2.0.0.0 auf Version 2.1.0.0 neu.
<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 jede assemblyIdentity , die in einem dependentAssembly enthalten ist , genau mit der assemblyIdentity im eigenen Assemblymanifest der Assembly übereinstimmen muss.
Das assemblyIdentity-Element weist die folgenden Attribute auf. Es enthält keine Unterelemente.
attribute | BESCHREIBUNG |
---|---|
type | Der Wert muss win32 (Kleinschreibung) sein. Erforderlich. |
name | Das name-Attribut identifiziert die Anwendung, die von der Anwendungskonfigurationsdatei oder der Assembly betroffen ist, die umgeleitet wird. Verwenden Sie das folgende Format für den Namen: Organization.Division.Name. Erforderlich. Beispiel: Microsoft.Windows.MysampleApp oder Microsoft.Windows.MysampleAsm. |
language | Gibt die Sprache an. Optional. Geben Sie für eine assemblyIdentity , die auf eine Assembly verweist, den DHTML-Sprachcode an, wenn die Assembly sprachspezifisch ist. Wenn die Assembly für den weltweiten Gebrauch (sprachneutral) ist, legen Sie den Wert auf "*" 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.nnnnn.oooo.pppp. Erforderlich. |
publicKeyToken | Für eine assemblyIdentity , die auf eine Assembly verweist, ist 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 2048 Bits oder höher sein. Erforderlich für alle gemeinsam genutzten parallelen Assemblys. |
bindingRedirect
Das bindingRedirect-Element enthält Umleitungsinformationen für die Bindung der Assembly. Jede bindingRedirect muss in genau einer dependentAssembly enthalten sein. Die vierteilige Versionssyntax der neuen Version und der alten Version muss die gleiche Haupt- und Nebenversion angeben.
Dieses Element verfügt über die Attribute, die in der folgenden Tabelle aufgeführt sind.
attribute | BESCHREIBUNG |
---|---|
oldVersion | Gibt die Assemblyversion an, die überschrieben und umgeleitet wird. Verwenden Sie die vierteilige Versionssyntax nnnnn.nnnnnn.nnn. Geben Sie einen Versionsbereich durch einen Bindestrich ohne Leerzeichen an. Beispiel: 2.14.3.0 oder 2.14.3.0 2.16.0.0. Erforderlich. |
Newversion | Gibt die Version der Ersatzassembly an. Verwenden Sie die vierteilige Versionssyntax nnnnn.nnnnn.nnn. |
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"/>