Publisher Konfigurationsdateien

Eine Herausgeberkonfigurationsdatei ist eine XML-Datei, die Anwendungen und Assemblys global von der Verwendung einer Version einer gleichzeitigen Assembly zu einer anderen Version derselben Assembly umleiten kann. In der Regel gibt der Herausgeber der Assembly pro Assembly ein kompatibles Update oder eine Sicherheitsupdates aus, indem er eine Herausgeberkonfigurationsdatei ausstellen, die zusammen mit einem Service Pack-Update installiert werden soll. Dies wird als Herausgeberkonfiguration bezeichnet. Weitere Informationen zu dieser Art von Konfiguration finden Sie unter Publisher Konfiguration.

Publisher Konfigurationsdateien verfügen über die folgenden Elemente und Attribute. Eine vollständige Auflistung des XML-Schemas finden Sie unter Publisher Configuration File Schema.

Element Attribute Erforderlich
Versammlung 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 häufig als separate Datei installiert, herausgeberkonfigurationsdateien können jedoch auch als Ressource in eine DLL aufgenommen 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 hat die Formularrichtlinie. Haupt-. neben . assemblyname, wobei Haupt- und Nebenversion auf die Haupt- und Nebenteile der Assemblyversion verweisen, die betroffen sind. Der Assemblyname bezieht sich auf den Namen der Assembly.

Beispiel: eine Herausgeberkonfigurationsdatei für Version 6.0 von Microsoft. Windows. Die Common-Controls-Assembly hat den folgenden Namen:

policy.6.0.Microsoft. Windows. Allgemeine Steuerelemente

Verwenden Sie keine Richtlinienkonfigurationsdateien, um die Haupt- oder Nebenversion einer Assembly zu erhöhen. Leiten Sie beispielsweise Version 6.0.0.0 nicht zu 7.0.0.0 oder 6.1.0.0 um. Wenn eine Anwendung auf eine Assemblyversion verweist, z. B. 6.0.0.0, überprüft sie nebeneinander, ob Richtlinienkonfigurationsdateien mit den angegebenen Haupt- und Nebenversionen vorliegen, 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 das Ausstellen mehrerer Richtlinienkonfigurationsdateien.

Elemente

Versammlung

Ein Containerelement. Das erste Unterelement muss 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 nebeneinander seitige Assembly und identifiziert sie eindeutig.

Als erstes Unterelement eines Assemblyelements beschreibt assemblyIdentity die seiteseitige Assembly, bei der eine oder mehrere Assemblyabhängigkeiten geändert wurden. Die Herausgeberkonfigurationsdatei leitet die Abhängigkeiten der identifizierten Assembly um. Die folgende AssemblyIdentity gibt beispielsweise an, dass die Herausgeberkonfigurationsdatei die Abhängigkeiten von x86 Microsoft beeinflusst. Windows. Pop 6.0.0.0-Assembly.

<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 abhängigkeitsseitige Assembly. Die Konfigurationsdatei des Herausgebers konfiguriert die Identität dieser erforderlichen side-by-side-Assembly neu. Die Änderung wird in bindingRedirect angegeben. Die folgende AssemblyIdentity ändert z. B. alle Abhängigkeiten von Microsoft. Windows. SampleAssembly Version 2.0.0.0 zu einer 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. Sie verfügt über keine untergeordneten Elemente.

attribute BESCHREIBUNG
type Gibt den Assemblytyp an. Erforderlich. In assemblyIdentity für die betroffene Assembly muss der Wert des Typattributs auf win32-policy festgelegt werden. Der Wert win32-policy muss in Kleinbuchstaben geschrieben werden.
In assemblyIdentity für die sich ändernde Assemblyabhängigkeit muss der Wert des Typattributs auf win32 festgelegt werden. Der Win32-Wert muss in Kleinbuchstaben geschrieben werden.
name Benennt eine Assembly eindeutig. Erforderlich. In assemblyIdentity für die betroffene Assembly hat name die Formularrichtlinie. Haupt-. neben . assemblyname, wobei Haupt- und Nebenversion 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 Identifiziert die Sprache der Assembly. Optional. Wenn die Assembly sprachspezifisch ist, geben Sie in assemblyIdentity für die betroffene Assembly den DHTML-Sprachcode an. Wenn die Assembly für die weltweite Verwendung (sprachneutral) vorgesehen ist, sollten Sie dieses Attribut weglassen.
Wenn die Assembly sprachspezifisch ist, geben Sie in assemblyIdentity für die sich ändernde Assemblyabhängigkeit den DHTML-Sprachcode an. Wenn die Assembly für die weltweite Verwendung (sprachneutral) ist, legen Sie den Wert auf " * " fest.
Processorarchitecture Gibt den Prozessor an, auf dem die Anwendung ausgeführt wird.
version Gibt die Assemblyversion an. Verwenden Sie die vierteilige Versionssyntax: mmmm.nnnn.oooo.ppp Nur im DEF-Kontext assemblyIdentity erforderlich. Geben Sie das Versionsattribut nicht in der REF-KontextassemblyIdentity an.
Publickeytoken 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. Ein publicKeyToken ist für alle freigegebenen nebeneinander verwendeten Assemblys erforderlich. Das publicKeyToken, das für die Herausgeberkonfigurationsdatei verwendet wird, sollte derselbe Schlüssel sein, der für die signierte Assembly verwendet wird. Publisher Konfigurationsdateien mit den gleichen Tools signiert werden können, die auch mit Assemblys verwendet werden, finden Sie unter AssemblySignierungsbeispiel und Erstellen signierter Dateien und Kataloge.

Abhängigkeit

Ein optionales Containerelement für mindestens ein dependentAssembly-Element. Sie verfügt über keine Attribute.

Dependentassembly

Jede dependentAssembly muss sich innerhalb genau einer Abhängigkeit befinden. Eine dependentAssembly verfügt über keine Attribute. Das erste Unterelement von dependentAssembly muss eine assemblyIdentity für die side-by-side-Assembly sein, die von der Herausgeberkonfiguration neu konfiguriert wird.

bindingRedirect

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

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.

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>