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