パブリッシャー構成ファイル
パブリッシャー構成ファイルは、アプリケーションとアセンブリをサイド バイ サイド アセンブリの 1 つのバージョンを使用して同じアセンブリの別のバージョンにグローバルにリダイレクトする XML ファイルです。 通常、アセンブリの発行元は、サービス パックの更新プログラムと共にインストールするパブリッシャー構成ファイルを発行することで、アセンブリごとに互換性のある更新プログラムまたはセキュリティ修正プログラムを発行します。 これは、パブリッシャー構成 と呼ばれます。 この種類の 構成 詳細については、「パブリッシャーの構成」を参照してください。
パブリッシャー構成ファイルには、次の要素と属性があります。 XML スキーマの完全な一覧については、「パブリッシャー構成ファイル スキーマ を参照してください。
要素 | 属性 | 必須 |
---|---|---|
アセンブリ を する | はい | |
manifestVersion を する | はい | |
assemblyIdentity | はい | |
型 | はい | |
名の | はい | |
言語 | いいえ | |
processorArchitecture | いいえ | |
バージョンの | はい | |
publicKeyToken を する | いいえ | |
依存関係 の | いいえ | |
dependentAssembly を する | いいえ | |
bindingRedirect の | はい | |
oldVersion | はい | |
newVersion を する | はい |
ファイルの場所
パブリッシャー構成ファイルは、WinSxS フォルダーにインストールする必要があります。 これらは通常、別のファイルとしてインストールされますが、パブリッシャー構成ファイルを DLL のリソースとして含めることもできます。 パブリッシャー構成ファイルをリソースとして EXE ファイルに含めることはできません。 EXE ファイルには、リソースとして アプリケーション マニフェストが含まれる場合があります。
ファイル名の構文
パブリッシャー構成ファイルのファイル名には、ポリシー 形式があります。主要な。マイナーします。アセンブリ名、メジャー と マイナー、影響を受ける アセンブリ バージョンの のメジャー部分とマイナー 部分を参照します。 アセンブリ名 は、アセンブリの名前を参照します。
たとえば、Microsoft.Windows のバージョン 6.0 のパブリッシャー構成ファイルなどです。アセンブリCommon-Controls 名前は次のようになります。
- 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である必要があります。 必須。
アセンブリ要素は、名前空間 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 要素には、次の属性があります。 サブ要素はありません。
属性 形容 型 アセンブリの種類を指定します。 必須。 影響を受けるアセンブリの assemblyIdentity では、型 属性の値を win32-policy に設定する必要があります。 win32-policy の値は、すべて小文字にする必要があります。
変更するアセンブリ依存関係の assemblyIdentity では、型の 属性の値を win32 に設定する必要があります。 値 win32 は、すべて小文字にする必要があります。名の アセンブリに一意の名前を付けます。 必須。 影響を受けるアセンブリの assemblyIdentity では、name にはポリシー フォームがあります。メジャー.マイナー。アセンブリ名、メジャー と マイナー、アセンブリ バージョンの主要部分とマイナー 部分を参照します。
変更するアセンブリ依存関係の assemblyIdentity では、名前の形式は Organization.Division.Name。 たとえば、Microsoft.Windows.MysampleApp などです。言語 アセンブリの言語を識別します。 随意。 影響を受けるアセンブリの assemblyIdentity で、アセンブリが言語固有の場合は、DHTML 言語コードを指定します。 アセンブリが世界中で使用される (言語に依存しない) 場合は、この属性を省略します。
アセンブリの依存関係を変更するための assemblyIdentity で、アセンブリが言語固有の場合は、DHTML 言語コードを指定します。 アセンブリが世界中で使用される場合 (言語に依存しない) 場合は、値を "*" に設定します。processorArchitecture アプリケーションを実行しているプロセッサを指定します。 バージョンの アセンブリのバージョンを指定します。 4 部構成のバージョン構文を使用します。mmmm.nnnn.oooo.pppp 必須は、def コンテキスト assemblyIdentityでのみ必要です。 ref-context assemblyIdentityでバージョン属性を指定しないでください。 publicKeyToken を する アセンブリが署名されている公開キーの SHA-1 ハッシュの最後の 8 バイトを表す 16 文字の 16 進文字列。 カタログの署名に使用される公開キーは、2048 ビット以上である必要があります。 publicKeyToken は、すべての共有サイド バイ サイド アセンブリに必要です。 パブリッシャー構成ファイルに使用される publicKeyToken は、署名されたアセンブリに使用されるのと同じキーにする必要があります。 パブリッシャー構成ファイルは、アセンブリで使用するのと同じツールを使用して署名できます。アセンブリ署名の例 と 署名済みファイルとカタログの作成を参照してください。 -
依存関係の
-
少なくとも 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 を使用します。
備考
パブリッシャー構成ファイルでは、ファイルは指定されません。 言語固有のポリシー ファイルは、パブリッシャー構成ファイルとは別であることに注意してください。
例
<?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>