Publisher-Konfigurationsdateien

Eine Herausgeberkonfigurationsdatei ist eine XML-Datei, die Anwendungen und Assemblys global von der Verwendung einer Version einer parallelen Assembly zu einer anderen Version derselben Assembly umleitet. In der Regel gibt der Herausgeber der Assembly ein kompatibles Update oder eine Sicherheitskorrektur pro Assembly aus, indem er eine Herausgeberkonfigurationsdatei ausgibt, die zusammen mit einem Service Pack-Update installiert werden soll. Dies wird als Herausgeberkonfiguration bezeichnet. Weitere Informationen zu diesem Konfigurationstyp finden Sie unter Herausgeberkonfiguration.

Publisher-Konfigurationsdateien weisen die folgenden Elemente und Attribute auf. Eine vollständige Liste des XML-Schemas finden Sie unter Publisher Configuration File Schema.

Element Attribute Erforderlich
assembly Ja
manifestVersion Ja
assemblyIdentity Ja
type Ja
name Ja
language Nein
Processorarchitecture Nein
version Ja
publicKeyToken Nein
Abhängigkeit Nein
dependentAssembly Nein
bindingRedirect Ja
oldVersion Ja
Newversion Ja

Speicherort

Publisher-Konfigurationsdateien müssen im Ordner WinSxS installiert werden. Sie werden in der Regel als separate Datei installiert, aber Herausgeberkonfigurationsdateien können auch als Ressource in eine DLL eingeschlossen werden. Eine Herausgeberkonfigurationsdatei kann nicht als Ressource in eine EXE-Datei eingeschlossen werden. Eine EXE-Datei kann ein Anwendungsmanifest als Ressource enthalten.

Dateinamensyntax

Der Dateiname einer Herausgeberkonfigurationsdatei weist die Formularrichtlinie auf. Hauptfach. nebensächt.assemblyname , wobei Haupt - und Nebenteile auf die Haupt- und Nebenteile der betroffenen Assemblyversion verweisen. Der Assemblyname bezieht sich auf den Namen der Assembly.

Beispielsweise hätte eine Herausgeberkonfigurationsdatei für Version 6.0 der Assembly Microsoft.Windows.Common-Controls den folgenden Namen:

policy.6.0.Microsoft.Windows.Common-Controls

Verwenden Sie keine Richtlinienkonfigurationsdateien, um die Haupt- oder Nebenversion einer Assembly inkrementieren. Leiten Sie beispielsweise Version 6.0.0.0.0 nicht an 7.0.0.0 oder 6.1.0.0 um. Wenn eine Anwendung auf eine Assemblyversion wie 6.0.0.0.0 verweist, wird parallel überprüft, ob Richtlinienkonfigurationsdateien mit der angegebenen Haupt- und Nebenversion vorhanden sind, z. B. 6.0. Die Anwendung wird dann an eine andere Version der Assembly umgeleitet, z. B. 6.0.1.0. Wenn eine Herausgeberkonfigurationsdatei die Haupt- oder Nebenversion einer Assembly erhöht, erfordert die nachfolgende Umleitung der Assembly möglicherweise die Ausgabe mehrerer Richtlinienkonfigurationsdateien.

Elemente

Versammlung

Ein Containerelement. Das erste Unterelement muss eine assemblyIdentity sein. Erforderlich.

Das Assemblyelement muss sich im Namespace urn:schemas-microsoft-com:asm.v1 befinden. Untergeordnete Elemente der Assembly müssen sich ebenfalls in diesem Namespace befinden, durch Vererbung oder durch Tagging.

Das Assemblyelement verfügt über die folgenden Attribute.

attribute Beschreibung
manifestVersion Das manifestVersion-Attribut muss auf 1.0 festgelegt werden.

Assemblyidentity

Beschreibt eine parallele Assembly und identifiziert sie eindeutig.

Als erstes Unterelement eines Assemblyelements beschreibt assemblyIdentity die parallele Assembly, bei der eine oder mehrere Assemblyabhängigkeiten geändert wurden. Die Herausgeberkonfigurationsdatei leitet die Abhängigkeiten der identifizierten Assembly um. Beispielsweise gibt die folgende assemblyIdentity an, dass sich die Herausgeberkonfigurationsdatei auf die Abhängigkeiten der x86-Assembly Microsoft.Windows.Pop 6.0.0.0 auswirkt.

<assemblyIdentity 
     type="win32-policy" 
     publicKeyToken="0000000000000000" 
     name="policy.6.0.Microsoft.Windows.Pop" 
     version="2.1.0.0" 
     processorArchitecture="x86"/>

Als erstes Unterelement eines dependentAssembly-Elements beschreibt assemblyIdentity eine parallele Assemblyabhängigkeit. Die Herausgeberkonfigurationsdatei konfiguriert die Identität dieser erforderlichen parallelen Assembly neu. Die Änderung wird in bindingRedirect angegeben. Beispielsweise ändert die folgende assemblyIdentity jede Abhängigkeit von Microsoft.Windows.SampleAssembly Version 2.0.0.0 in eine Abhängigkeit von Microsoft.Windows.SampleAssembly Version 2.0.1.0.

<dependency>
      <dependentAssembly>
         <assemblyIdentity 
type="win32" 
name="Microsoft.Windows.SampleAssembly"  
processorArchitecture="x86"
publicKeyToken="0000000000000000"/>
         <bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
      </dependentAssembly>
</dependency>

Das assemblyIdentity-Element verfügt über die folgenden Attribute. Es enthält keine Unterelemente.

attribute BESCHREIBUNG
type Gibt den Assemblytyp an. Erforderlich. In assemblyIdentity für die betroffene Assembly muss der Wert des Type-Attributs auf win32-policy festgelegt werden. Der Wert win32-policy muss in Kleinbuchstaben enthalten sein.
In assemblyIdentity für die sich ändernde Assemblyabhängigkeit muss der Wert des Type-Attributs auf win32 festgelegt werden. Der Wert win32 muss in Kleinbuchstaben enthalten sein.
name Benennt eine Assembly eindeutig. Erforderlich. In der assemblyIdentity für die betroffene Assembly weist name die Formularrichtlinie auf. Hauptfach. nebensächt.assemblyname , wobei Haupt - und Nebenteile auf die Haupt- und Nebenteile der Assemblyversion verweisen.
In assemblyIdentity für die sich ändernde Assemblyabhängigkeit hat name die Form Organization.Division.Name. Beispiel: Microsoft.Windows.MysampleApp.
language Gibt die Sprache der Assembly an. Optional. Geben Sie in assemblyIdentity für die betroffene Assembly den DHTML-Sprachcode an, wenn die Assembly sprachspezifisch ist. Wenn die Assembly für die weltweite Verwendung vorgesehen ist (sprachneutral), lassen Sie dieses Attribut aus.
Geben Sie in assemblyIdentity für die sich ändernde Assemblyabhängigkeit den DHTML-Sprachcode an, wenn die Assembly sprachspezifisch ist. Wenn die Assembly für die weltweite Verwendung (sprachneutral) vorgesehen ist, legen Sie den Wert auf "*" fest.
Processorarchitecture Gibt den Prozessor an, der die Anwendung ausführt.
version Gibt die Assemblyversion an. Verwenden Sie die Syntax der vierteiligen Version: mmmm.nnnn.oooo.pppp Erforderlich nur in der DEF-KontextassemblyIdentity. Geben Sie das versionsattribute nicht in der REF-context assemblyIdentity an.
publicKeyToken Eine hexadezimale Zeichenfolge mit 16 Zeichen, 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. Ein publicKeyToken ist für alle gemeinsam genutzten parallelen Assemblys erforderlich. Der für die Herausgeberkonfigurationsdatei verwendete publicKeyToken sollte derselbe Schlüssel sein, der für die signierte Assembly verwendet wird. Verlegerkonfigurationsdateien können mit denselben Tools signiert werden, die mit Assemblys verwendet werden. Weitere Informationen finden Sie unter Beispiel für die Assemblysignatur und Erstellen signierter Dateien und Kataloge.

Abhängigkeit

Ein optionales Containerelement für mindestens eine abhängigeAssembly. Es weist keine Attribute auf.

Dependentassembly

Jede dependentAssembly muss sich in genau einer Abhängigkeit befinden. Ein dependentAssembly verfügt über keine Attribute. Das erste Unterelement von dependentAssembly muss eine assemblyIdentity für die parallele Assembly sein, die von der Verlegerkonfiguration neu konfiguriert wird.

bindingRedirect

Das bindingRedirect-Element enthält Umleitungsinformationen für die Bindung der Assembly.

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 mit einem 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

Publisher-Konfigurationsdateien geben keine Dateien an. Beachten Sie, dass sprachspezifische Richtliniendateien von der Herausgeberkonfigurationsdatei getrennt sind.

Beispiel

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<assemblyIdentity type="win32-policy" publicKeyToken="0000000000000000" name="policy.6.0.Proseware.Research.SampleAssembly" version="1.0.1.0" language="en-us" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" publicKeyToken="0000000000000000" name="Proseware.Research.SampleAssembly" language="en-us" processorArchitecture="x86"/>
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.1.0"/>
</dependentAssembly>
</dependency>
</assembly>