Anwendungskonfigurationsdateien
Eine Anwendungskonfigurationsdatei ist eine XML-Datei, die zum Steuern der Assemblybindung verwendet wird. Sie kann eine Anwendung von der Verwendung einer Version einer gleichzeitigen Assembly zu einer anderen Version derselben Assembly umleiten. Dies wird anwendungsspezifische Konfiguration genannt. 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 von Anwendungsmanifesten und Herausgeberkonfigurationsdateien angegebenen Assemblyversionen überschreiben. Wenn eine Herausgeberkonfigurationsdatei beispielsweise 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 Schema der Anwendungskonfigurationsdatei.
Anwendungskonfigurationsdateien verfügen über die in der folgenden Tabelle gezeigten Elemente und Attribute.
| Element | Attribute | Erforderlich |
|---|---|---|
| configuration | Yes | |
| windows | Yes | |
| publisherPolicy | Yes | |
| Anwenden | Yes | |
| Laufzeit | No | |
| assemblyBinding | Yes | |
| Sondieren | No | |
| Privatepath | Yes | |
| Abhängigkeit | No | |
| Dependentassembly | Yes | |
| Assemblyidentity | Ja | |
| type | Ja | |
| name | Ja | |
| language | No | |
| Processorarchitecture | Yes | |
| version | Yes | |
| Publickeytoken | No | |
| bindingRedirect | Yes | |
| oldVersion | Yes | |
| Newversion | Yes |
Speicherort
Anwendungskonfigurationsdateien müssen am gleichen 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, die im folgenden Beispiel gezeigte Dateinamenssyntax verwenden. Sie können das Feld für die <-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 Kleinschreibung beachtet. Bei den Werten von Elementen und Attributen wird die Groß-/Kleinschreibung nicht beachtet, mit Ausnahme des Werts des Typattributs.
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 darf keine Konfigurationsdatei mit einem Windows-Unterelement als Teil der Anwendung enthalten. Dies kann zulässig sein, wenn der einzige Zweck der Konfigurationsdatei das Aktivieren der privatePath-Funktionalität eines Suchelements ist. Das Element "probeing" 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 enthält die in der folgenden Tabelle gezeigten Attribute.
| attribute | Beschreibung |
|---|---|
| Anwenden | Der Wert "Yes" 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 Untergeordnetes Element für die Probe 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 keine 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 enthält die in der folgenden Tabelle gezeigten 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. Begrenzen Sie jeden Unterverzeichnispfad durch ein Semikolon. |
Sie können den speziellen Spezifizierer mit doppelten Punkten in einem Pfad verwenden, um das übergeordnete Verzeichnis des aktuellen Verzeichnisses zu kennzeichnen. Es können nicht mehr als zwei Ebenen oberhalb des aktuellen Verzeichnisses mit doppelten Punkten angegeben werden. Verwenden Sie keine drei Punkte. Beispielsweise überprüft eine Anwendung, die das folgende Testelement verwendet, zusätzliche Verzeichnisse für eine Assembly.
<probing privatePath="bin;..\bin2\subbin;bin3"/>
dependency
Ein Containerelement für mindestens ein dependentAssembly-Element. Jede dependentAssembly kann sich innerhalb genau einer Abhängigkeit befinden. Dieses Element weist keine Attribute auf. Optional.
dependentAssembly
Das erste Unterelement muss ein assemblyIdentity-Element sein, das die von der Anwendungskonfigurationsdatei umgeleitete side-by-side-Assembly identifiziert. Eine 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 nebeneinander ausgeführte Assemblys um. Die folgende assemblyIdentity gibt z. B. an, dass die Anwendungskonfigurationsdatei die Bindung der Anwendung mysampleApp an nebeneinander seitige Assemblys beeinflusst. 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 nebengeschaltete Assembly, von der die Anwendung abhängt. Die Anwendungskonfigurationsdatei konfiguriert die Identität dieser erforderlichen Assembly neu. Mit der folgenden assemblyIdentity und bindingRedirect wird beispielsweise eine Abhängigkeit von Microsoft neu konfiguriert. Windows. SampleAssembly von Version 2.0.0.0 bis Version 2.1.0.0.
<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 einer dependentAssembly enthalten ist, genau mit assemblyIdentity im eigenen Assemblymanifestder Assembly übereinstimmen muss.
Das assemblyIdentity-Element verfügt über die folgenden Attribute. Sie verfügt über keine Unterelemente.
| attribute | BESCHREIBUNG |
|---|---|
| type | Der Wert muss win32 (Kleinbuchstaben) 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 | Identifiziert die Sprache. 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 die weltweite Verwendung vorgesehen ist (sprachneutral), legen Sie den Wert auf " * " fest. |
| Processorarchitecture | Gibt den Prozessor an, auf dem die Anwendung ausgeführt wird. |
| version | Gibt die Version der Anwendung oder Assembly an. Verwenden Sie die vierteilige Versionssyntax mmmm.nnnn.oooo.ppp. Erforderlich. |
| Publickeytoken | Für eine assemblyIdentity, die auf eine Assembly verweist, eine Hexadezimalzeichenfolge mit 16 Zeichen, die die letzten 8 Bytes des SHA-1-Hashs des öffentlichen Schlüssels darstellt, unter dem die Assembly signiert ist. Der zum Signieren des Katalogs verwendete öffentliche Schlüssel muss 2048 Bit oder höher sein. Erforderlich für alle freigegebenen nebeneinander verwendeten Assemblys. |
bindingRedirect
Das bindingRedirect-Element enthält Umleitungsinformationen für die Bindung der Assembly. Jedes bindingRedirect muss in genau einem dependentAssembly enthalten sein. In der vierteiligen Versionssyntax der neuen version und der alten Version müssen die gleichen Haupt- und Nebenversionen angegeben werden.
Dieses Element verfügt über die in der folgenden Tabelle gezeigten Attribute.
| attribute | Beschreibung |
|---|---|
| oldVersion | Gibt die Assemblyversion an, die überschrieben und umgeleitet wird. Verwenden Sie die vierteilige Versionssyntax nnnnn.nnnnn.nnnnn.nnnnn. Geben Sie einen Bereich von Versionen 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.nnnnn.nnnnn. |
Hinweise
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"/>