Publisher構成ファイル
発行元の構成ファイルは、アプリケーションとアセンブリを 1 つのバージョンのサイド バイ サイド アセンブリを使用して同じアセンブリの別のバージョンにグローバルにリダイレクトする XML ファイルです。 通常、アセンブリの発行元は、Service Pack の更新プログラムと共にインストールするパブリッシャー構成ファイルを発行することで、アセンブリごとに互換性のある更新プログラムまたはセキュリティ修正プログラムを発行します。 これを パブリッシャー構成と呼びます。 この種類の構成の詳細については、「Publisher構成」を参照してください。
Publisher構成ファイルには、次の要素と属性があります。 XML スキーマの完全な一覧については、「Publisher構成ファイル スキーマ」を参照してください。
| 要素 | 属性 | 必須 |
|---|---|---|
| アセンブリ | はい | |
| manifestVersion | はい | |
| assemblyIdentity | はい | |
| type | はい | |
| name | はい | |
| language | No | |
| processorArchitecture | No | |
| version | はい | |
| publicKeyToken | No | |
| 依存 関係 | No | |
| dependentAssembly | No | |
| bindingRedirect | はい | |
| oldVersion | はい | |
| newVersion | はい |
ファイルの場所
Publisher構成ファイルは WinSxS フォルダーにインストールする必要があります。 通常は別のファイルとしてインストールされますが、パブリッシャー構成ファイルは DLL のリソースとして含めることもできます。 パブリッシャー構成ファイルを EXE ファイルにリソースとして含めることはできません。 EXE ファイルには、リソースとして アプリケーション マニフェスト を含めることができます。
ファイル名の構文
発行元構成ファイルのファイル名には、フォーム ポリシーがあります。major。minor。アセンブリ名 。 メジャー と マイナー は、影響を受けている アセンブリ バージョン のメジャーパーツとマイナー パーツを参照します。 assemblyname はアセンブリの名前を参照します。
たとえば、Microsoft のバージョン 6.0 の発行元構成ファイルなどです。Windows。Common-Controls アセンブリの名前は次のとおりです。
- policy.6.0.Microsoft.Windows。共通コントロール
ポリシー構成ファイルを使用して、アセンブリのメジャー バージョンまたはマイナー バージョンをインクリメントしないでください。 たとえば、バージョン 6.0.0.0 を 7.0.0.0 または 6.1.0.0 にリダイレクトしないでください。 アプリケーションがアセンブリ バージョン (6.0.0.0 など) を参照する場合、指定されたメジャー バージョンとマイナー バージョン (6.0 など) を持つポリシー構成ファイルが存在するかどうかがサイド バイ サイドでチェックされます。 その後、アプリケーションは別のバージョンのアセンブリ (6.0.1.0 など) にリダイレクトされます。 パブリッシャー構成ファイルがアセンブリのメジャー バージョンまたはマイナー バージョンをインクリメントする場合、アセンブリの後続のリダイレクトでは、複数のポリシー構成ファイルの発行が必要になる場合があります。
要素
-
アセンブリ
-
コンテナー要素。 最初のサブ要素は assemblyIdentity である必要があります。 必須。
アセンブリ要素は、名前空間 urn:schemas-microsoft-com:asm.v1 に含まれている必要があります。 アセンブリの子要素も、継承またはタグ付けによって、この名前空間に存在する必要があります。
アセンブリ要素には、次の属性があります。
属性 説明 manifestVersion manifestVersion 属性は 1.0 に設定する必要があります。 -
assemblyIdentity
-
サイド バイ サイド アセンブリを記述し、一意に識別します。
アセンブリ要素の最初のサブ要素として、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 では、名前にフォーム ポリシーがあります。major。minor。アセンブリ名 。 メジャー と マイナー は 、アセンブリ バージョンのメジャーパーツとマイナー パーツを参照します。
変更するアセンブリ依存関係の assemblyIdentity では、名前の形式は Organization.Division.Name。 たとえば、Microsoft などです。Windows。MysampleApp。language アセンブリの言語を識別します。 省略可能。 影響を受けるアセンブリの assemblyIdentity で、アセンブリが言語固有の場合は、DHTML 言語コードを指定します。 アセンブリが世界規模で使用される (言語に依存しない) 場合は、この属性を省略します。
変更するアセンブリ依存関係の assemblyIdentity で、アセンブリが言語固有の場合は、DHTML 言語コードを指定します。 アセンブリが世界規模で使用される場合 (言語に依存しない) 場合は、値を "*" に設定します。processorArchitecture アプリケーションを実行しているプロセッサを指定します。 version アセンブリのバージョンを指定します。 4 部構成のバージョン構文を使用します。mmmm.nnnn.oooo.pppp 必ず DEF コンテキスト assemblyIdentity で使用します。 REF コンテキスト assemblyIdentity でバージョン属性を指定しないでください。 publicKeyToken アセンブリが署名されている公開キーの SHA-1 ハッシュの最後の 8 バイトを表す 16 文字の 16 進文字列。 カタログの署名に使用する公開キーは、2048 ビット以上である必要があります。 publicKeyToken は、すべての共有サイド バイ サイド アセンブリに必要です。 発行元の構成ファイルに使用される publicKeyToken は、署名されたアセンブリに使用されるのと同じキーにする必要があります。 Publisher構成ファイルは、アセンブリで使用されるのと同じツールを使用して署名できます。アセンブリ署名の例と署名済みファイルとカタログの作成を参照してください。 -
依存 関係
-
少なくとも 1 つの dependentAssembly の省略可能なコンテナー要素。 属性はありません。
-
dependentAssembly
-
すべての dependentAssembly は、 1 つの 依存関係内に存在する必要があります。 dependentAssembly には属性がありません。 dependentAssembly の最初のサブ要素は、パブリッシャー構成によって再構成されるサイド バイ サイド アセンブリの assemblyIdentity である必要があります。
-
bindingRedirect
-
bindingRedirect 要素には、アセンブリのバインドに関するリダイレクト情報が含まれています。
この要素には、次の表に示す属性があります。
属性 説明 oldVersion オーバーライドおよびリダイレクトされるアセンブリ バージョンを指定します。 4 部構成のバージョン構文 nnnnn.nnnnn.nnnnn.nnnnn を使用します。 スペースのないダッシュでバージョンの範囲を指定します。 たとえば、2.14.3.0 や 2.14.3.0 2.16.0.0 などです。 必須。 newVersion 置換アセンブリのバージョンを指定します。 4 部構成のバージョン構文 nnnnn.nnnnn.nnnnn.nnnnn を使用します。
注釈
Publisher構成ファイルでは、ファイルは指定されません。 言語固有のポリシー ファイルは、発行元の構成ファイルとは別であることに注意してください。
例
<?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>