パブリッシャー構成ファイル は、あるバージョンのサイド バイ サイド アセンブリに依存するアプリケーションとアセンブリを、同じアセンブリの別のバージョンを使用するようにグローバルにリダイレクトします。 これにより、アプリケーションとアセンブリは、影響を受けるすべてのアプリケーションを再構築しなくても、更新されたアセンブリを使用できます。
互換性のあるバグ修正プログラムまたはセキュリティ更新プログラムを使用してアセンブリの新しいバージョンを発行するときに、アセンブリの発行元が パブリッシャーの構成ファイルを提供できます。 更新されたバージョンは、完全に下位互換性がある必要があります。 更新プログラムが完全に下位互換性がある場合を除き、パブリッシャー構成ファイルを使用して新機能を追加しないでください。 アセンブリのメジャー バージョンまたはマイナー バージョンをインクリメントするために、パブリッシャー構成ファイルを使用しないでください。 たとえば、アセンブリ バージョン 6.0.0.0 を 7.0.0.0 または 6.1.0.0 にリダイレクトしないでください。
パブリッシャー構成ファイルは、アセンブリの発行元のみが発行する必要があります。 アセンブリ開発者は、共有サイド バイ サイド アセンブリとパブリッシャー構成ファイルに署名する必要があります。 アセンブリと関連するパブリッシャー構成ファイルに署名するには、同じキーを使用します。 パブリッシャー構成ファイルは、アセンブリに使用するのと同じツールを使用して署名する必要があります。アセンブリ署名の例 と 署名済みファイルとカタログの作成を参照してください。
通常、アセンブリの新しいバージョンと関連するパブリッシャー構成ファイルは、Service Pack の更新プログラムにインストールされます。 パブリッシャー構成ファイルをインストールすると、システム上のアセンブリがグローバルにリダイレクトされるため、パブリッシャー構成ファイルを再頒布可能パッケージとしてアプリケーションに提供しないでください。 更新するアセンブリが再頒布可能パッケージとして提供される場合、パブリッシャーは次の両方を提供する必要があります。
- パブリッシャー構成のアセンブリの新しいバージョンを含む Windows インストーラー パッケージ (.msi ファイル)。 この場合、お客様がシステムをグローバルに更新することを選択したため、これは Service Pack または QFE としてインストールされる可能性があります。 このバージョンのパッケージは、アプリケーションでインストールしないでください。
- 新しいバージョンのアセンブリのみを含む Windows インストーラー マージ モジュール (.msm ファイル)。 このバージョンは、アプリケーションに含まれる場合があります。
アセンブリの最小バージョンを必要とするアプリケーションは、最小バージョンへの依存関係を示す必要があります。最小バージョンがシステムで使用できない場合、アプリケーションは起動に失敗します。 再頒布可能パッケージとして使用できる場合は、アプリケーションのセットアップに含める必要があります。
たとえば、次の パブリッシャー構成ファイル インストールすると、Microsoft.Windows.SampleAssembly のバージョン 2.0.0.0 からバージョン 2.0.1.0 にバインドがリダイレクトされます。 これにより、%systemDrive%\windows\winsxs\policies\x86_policy.2.0.Microsoft.Windows.SampleAssembly_75e377300ab7b886_x-ww_<hashvalue>の下に、1.1.0.0.Policy という名前の新しいポリシーが追加されます。
<?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>
同じアセンブリに対して次のパブリッシャー構成ファイルをインストールすると、Microsoft.Windows.SampleAssembly のバージョン 2.0.0.0 からバージョン 2.0.3.0 にバインドがリダイレクトされます。 これにより、%systemDrive%\windows\winsxs\policies\x86_policy.2.0.Microsoft.Windows.SampleAssembly_75e377300ab7b886_x-ww_<hashvalue>の下に、2.1.0.0.Policy という名前の別のポリシーが追加されます。
<?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>