パブリッシャー構成ファイル

パブリッシャー構成ファイルは、アプリケーションとアセンブリをサイド バイ サイド アセンブリの 1 つのバージョンを使用して、同じアセンブリの別のバージョンにグローバルにリダイレクトする XML ファイルです。 通常、アセンブリの発行元は、サービス パックの更新プログラムと共にインストールするパブリッシャー構成ファイルを発行することで、アセンブリごとに互換性のある更新プログラムまたはセキュリティ修正プログラムを発行します。 これは パブリッシャー構成と呼ばれます。 この種類の構成の詳細については、「パブリッシャー の構成 」を参照してください。

パブリッシャー構成ファイルには、次の要素と属性があります。 XML スキーマの完全な一覧については、「 Publisher Configuration File Schema」を参照してください。

要素 属性 必須
assembly はい
manifestVersion はい
assemblyIdentity はい
type はい
name はい
language いいえ
processorArchitecture いいえ
version はい
publicKeyToken いいえ
依存 関係 いいえ
dependentAssembly いいえ
bindingRedirect はい
oldVersion はい
newVersion はい

ファイルの場所

パブリッシャー構成ファイルは、WinSxS フォルダーにインストールする必要があります。 これらは通常、個別のファイルとしてインストールされますが、パブリッシャー構成ファイルを DLL のリソースとして含めることもできます。 パブリッシャー構成ファイルを EXE ファイルのリソースとして含めることはできません。 EXE ファイルには、リソースとして アプリケーション マニフェスト を含めることができます。

ファイル名の構文

発行者構成ファイルのファイル名には、フォーム ポリシーがあります。majorminorassemblyname。メジャーマイナーは、影響を受けるアセンブリ バージョンのメジャー部分とマイナー 部分を参照します。 assemblyname は、アセンブリの名前を参照します。

たとえば、Microsoft.Windows.Common-Controls アセンブリのバージョン 6.0 の発行元構成ファイルの名前は次のようになります。

policy.6.0.Microsoft.Windows.Common-Controls

ポリシー構成ファイルを使用して、アセンブリのメジャー バージョンまたはマイナー バージョンをインクリメントしないでください。 たとえば、バージョン 6.0.0.0 を 7.0.0.0 または 6.1.0.0 にリダイレクトしないでください。 アプリケーションがアセンブリ バージョン (6.0.0.0 など) を参照する場合、指定されたメジャー バージョンとマイナー バージョン (6.0 など) を持つポリシー構成ファイルがサイド バイ サイドで確認されます。 その後、アプリケーションは別のバージョンのアセンブリ (6.0.1.0 など) にリダイレクトされます。 パブリッシャー構成ファイルがアセンブリのメジャー バージョンまたはマイナー バージョンをインクリメントする場合、アセンブリの後続のリダイレクトで複数のポリシー構成ファイルを発行する必要がある場合があります。

要素

アセンブリ

コンテナー要素。 最初のサブ要素は assemblyIdentity である必要があります。 必須。

assembly 要素は、名前空間 urn:schemas-microsoft-com:asm.v1 内にある必要があります。 アセンブリの子要素も、継承またはタグ付けによって、この名前空間に存在する必要があります。

assembly 要素には、次の属性があります。

属性 説明
manifestVersion manifestVersion 属性は 1.0 に設定する必要があります。

assemblyIdentity

サイド バイ サイド アセンブリについて説明し、一意に識別します。

assembly 要素の最初のサブ要素として、assemblyIdentity は、1 つ以上のアセンブリ依存関係が変更されているサイド バイ サイド アセンブリを記述します。 パブリッシャー構成ファイルは、識別されたアセンブリの依存関係をリダイレクトします。 たとえば、次の assemblyIdentity は、発行元の構成ファイルが x86 Microsoft.Windows.Pop 6.0.0.0 アセンブリの依存関係に影響することを示します。

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

dependentAssembly 要素の最初のサブ要素として、assemblyIdentity は side-by-side アセンブリ依存関係を記述します。 パブリッシャー構成ファイルは、この必須のサイド バイ サイド アセンブリの ID を再構成します。 変更は bindingRedirect で指定されます。 たとえば、次の assemblyIdentity は、Microsoft.Windows.SampleAssembly バージョン 2.0.0.0 への依存関係を Microsoft.Windows.SampleAssembly バージョン 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>

assemblyIdentity 要素には、次の属性があります。 サブ要素はありません。

属性 説明
type アセンブリの種類を指定します。 必須。 影響を受ける アセンブリの assemblyIdentity では、 type 属性の値を win32-policy に設定する必要があります。 win32-policy の値は、すべて小文字にする必要があります。
変更するアセンブリ依存関係の assemblyIdentity では、 type 属性の値を win32 に設定する必要があります。 値 win32 は、すべて小文字にする必要があります。
name アセンブリに一意の名前を付けます。 必須。 影響を受けるアセンブリの assemblyIdentity で、name にはフォーム ポリシーがあります。majorminorassemblyname。メジャーマイナー、アセンブリ バージョンのメジャーパーツとマイナーパーツを参照します。
変更するアセンブリ依存関係の assemblyIdentity では、name は Organization.Division.Name という形式になります。 たとえば、Microsoft.Windows.MysampleApp などです。
language アセンブリの言語を識別します。 省略可能。 影響を受ける アセンブリの assemblyIdentity で、アセンブリが言語固有の場合は、DHTML 言語コードを指定します。 アセンブリが世界中で使用される (言語に依存しない) 場合は、この属性を省略します。
変更するアセンブリ依存関係の assemblyIdentity で、アセンブリが言語固有の場合は、DHTML 言語コードを指定します。 アセンブリが世界中で使用される場合 (言語に依存しない) 場合は、値を "*" に設定します。
processorArchitecture アプリケーションを実行しているプロセッサを指定します。
version アセンブリのバージョンを指定します。 4 部構成のバージョン構文を使用します。mmmm.nnnn.oooo.pppp DEF コンテキスト assemblyIdentity でのみ必要です。 REF コンテキスト assemblyIdentity で version 属性を指定しないでください。
publicKeyToken アセンブリが署名されている公開キーの SHA-1 ハッシュの最後の 8 バイトを表す 16 文字の 16 進文字列。 カタログの署名に使用される公開キーは、2048 ビット以上である必要があります。 publicKeyToken は、すべての共有サイド バイ サイド アセンブリに必要です。 パブリッシャー構成ファイルに使用される publicKeyToken は、署名されたアセンブリに使用されるのと同じキーである必要があります。 パブリッシャー構成ファイルは、アセンブリで使用されるのと同じツールを使用して署名できます。「 アセンブリ署名の例 」および「 署名済みファイルとカタログの作成」を参照してください。

依存 関係

少なくとも 1 つの dependentAssembly の省略可能なコンテナー要素。 属性はありません。

dependentAssembly

すべての dependentAssembly は、 1 つの 依存関係内に存在する必要があります。 dependentAssembly には属性がありません。 dependentAssembly の最初のサブ要素は、パブリッシャー構成によって再構成されるサイド バイ サイド アセンブリの assemblyIdentity である必要があります。

bindingRedirect

bindingRedirect 要素には、アセンブリのバインドに関するリダイレクト情報が含まれています。

この要素には、次の表に示す属性があります。

属性 説明
oldVersion オーバーライドおよびリダイレクトされるアセンブリ バージョンを指定します。 4 部構成のバージョン構文 nnnnn.nnnnnnn.nnnnn.nnnnn を使用します。 スペースのないダッシュでバージョンの範囲を指定します。 たとえば、2.14.3.0 や 2.14.3.0 2.16.0.0 などです。 必須。
newVersion 置換アセンブリのバージョンを指定します。 4 部構成のバージョン構文 nnnnn.nnnnn.nnnnn.nnnnn を使用します。

解説

パブリッシャー構成ファイルでは、ファイルは指定されません。 言語固有のポリシー ファイルは、発行元の構成ファイルとは別であることに注意してください。

<?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>