Publisher-Konfiguration
Eine Herausgeberkonfigurationsdatei global umleitet Anwendungen und Assemblys mit einer Abhängigkeit von einer Version einer parallelen Assembly, um eine andere Version derselben Assembly zu verwenden. Dadurch können Anwendungen und Assemblys die aktualisierte Assembly verwenden, ohne alle betroffenen Anwendungen neu erstellen zu müssen.
Publisher-Konfigurationsdateien können vom Herausgeber einer Assembly bereitgestellt werden, wenn eine neue Version der Assembly mit kompatiblen Fehlerbehebungen oder Sicherheitsupdates ausgestellt wird. Die aktualisierte Version sollte vollständig abwärtskompatibel sein. Eine Herausgeberkonfigurationsdatei sollte niemals verwendet werden, um neue Features hinzuzufügen, es sei denn, das Update ist vollständig abwärtskompatibel. Publisher-Konfigurationsdateien sollten niemals verwendet werden, um die Haupt- oder Nebenversion einer Assembly zu erhöhen. Umleiten Sie beispielsweise keine Assemblyversion 6.0.0.0 auf 7.0.0.0 oder 6.1.0.0.
Publisher-Konfigurationsdateien sollten nur vom Herausgeber der Assembly ausgestellt werden. Assemblyentwickler sollten gemeinsam genutzte Assemblys und Herausgeberkonfigurationsdateien signieren. Verwenden Sie denselben Schlüssel, um die Assembly und die zugehörigen Publisher-Konfigurationsdateien zu signieren. Publisher-Konfigurationsdateien sollten mit denselben Tools wie für Assemblys signiert werden, siehe Assemblysignierungsbeispiel und Erstellen signierter Dateien und Kataloge.
In der Regel wird die neue Version einer Assembly und die zugeordnete Herausgeberkonfigurationsdatei in einem Service Pack-Update installiert. Publisher-Konfigurationsdateien sollten niemals mit Anwendungen als weitervertreibbar bereitgestellt werden, da die Installation einer Herausgeberkonfigurationsdatei Assemblys global auf dem System umleitet. Wenn die assembly, die aktualisiert wird, als weitervertreibbar bereitgestellt wird, sollte der Herausgeber beides bereitstellen.
- Ein Windows Installer-Paket (.msi Datei), das die neue Version der Assembly mit publisher-Konfiguration enthält. Dies kann als Service Pack oder QFE installiert werden, da sich der Kunde in diesem Fall dafür entschieden hat, das System global zu aktualisieren. Diese Version des Pakets sollte niemals von Anwendungen installiert werden.
- Ein Windows Installer-Zusammenführungsmodul (MSM-Datei), das nur die neue Version der Assembly enthält. Diese Version kann in Anwendungen enthalten sein.
Anwendungen, die eine Mindestversion der Assembly erfordern, sollten deren Abhängigkeit von der Mindestversion angeben, wenn die Mindestversion für ein System nicht verfügbar ist, wird die Anwendung nicht gestartet. Wenn sie als Weiterverteiler verfügbar ist, sollte sie in das Anwendungssetup aufgenommen werden.
Installieren Sie beispielsweise die folgende Publisher-Konfigurationsdatei, die Bindung von Version 2.0.0.0 der Microsoft.Windows.SampleAssembly auf Version 2.0.1.0 umleitet. Dadurch wird eine neue Richtlinie namens 1.1.0.0.Policy unter %systemDrive%\windows\winsxs\policies\x86_policy.2.0.Microsoft.Windows.SampleAssembly_75e377300ab7b886_x-ww_<Hashwert>hinzugefügt.
<?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.2.0.Microsoft.Windows.SampleAssembly" version="1.1.0.0" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" processorArchitecture="x86" publicKeyToken="75e377300ab7b886"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.1.0"/>
</dependentAssembly>
</dependency>
</assembly>
Beim Installieren der folgenden Publisher-Konfigurationsdatei für dieselbe Assembly wird die Bindung von Version 2.0.0.0 der Microsoft.Windows.SampleAssembly auf Version 2.0.3.0 umgeleitet. Dadurch wird eine weitere Richtlinie namens 2.1.0.0.Policy unter %systemDrive%\windows\winsxs\policies\x86_policy.2.0.Microsoft.Windows.SampleAssembly_75e377300ab7b886_x-ww_<Hashwert>hinzugefügt.
<?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.2.0.Microsoft.Windows.SampleAssembly" version="2.1.0.0" processorArchitecture="x86"/>
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.SampleAssembly" processorArchitecture="x86" publicKeyToken="75e377300ab7b886"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="2.0.3.0"/>
</dependentAssembly>
</dependency>
</assembly>