アプリケーション構成ファイル
アプリケーション構成ファイルは、アセンブリ バインドを制御するために使用される XML ファイルです。 アプリケーションをサイド バイ サイド アセンブリの 1 つのバージョンを使用して、同じアセンブリの別のバージョンにリダイレクトできます。 これは、 アプリケーションごとの構成と呼ばれます。 アプリケーション構成ファイルは、特定のアプリケーション マニフェストと依存アセンブリにのみ適用されます。 埋め込みISOLATIONAWARE_MANIFEST_RESOURCE_ID マニフェストでコンパイルされた分離コンポーネントには、別のアプリケーション構成ファイルが必要です。 CreateActCtx で管理されるマニフェストには、別のアプリケーション構成ファイルが必要です。
アプリケーション構成ファイルで指定されたリダイレクトは、 アプリケーション マニフェスト と パブリッシャー構成ファイルで指定されたアセンブリ バージョンをオーバーライドできます。 たとえば、アセンブリへのすべての参照をバージョン 1.0.0.0 から 1.1.0.0 にリダイレクトするようにパブリッシャー構成ファイルが指定されている場合、アプリケーション構成ファイルを使用して、特定のアプリケーションをリダイレクトしてバージョン 1.0.0.0 を使用できます。 アプリケーション構成ファイルは、指定されたアプリケーション マニフェストと依存アセンブリにのみ適用されます。
XML スキーマの完全な一覧については、「 アプリケーション構成ファイル スキーマ」を参照してください。
アプリケーション構成ファイルには、次の表に示す要素と属性があります。
要素 | 属性 | 必須 |
---|---|---|
configuration | はい | |
windows | はい | |
publisherPolicy | はい | |
apply | はい | |
ランタイム | いいえ | |
assemblyBinding | はい | |
プロービング | いいえ | |
Privatepath | はい | |
依存 関係 | いいえ | |
dependentAssembly | はい | |
assemblyIdentity | はい | |
type | はい | |
name | はい | |
language | いいえ | |
processorArchitecture | はい | |
version | はい | |
publicKeyToken | いいえ | |
bindingRedirect | はい | |
oldVersion | はい | |
newVersion | はい |
ファイルの場所
アプリケーション構成ファイルは、アプリケーションの アプリケーション マニフェストと同じ場所にインストールする必要があります。
ファイル名の構文
アプリケーション構成ファイルの名前は、アプリケーション実行可能ファイルの名前の後に.config。
たとえば、Example.exeまたはExample.dllを参照するアプリケーション構成ファイルでは、次の例に示すファイル名構文を使用します。 構成ファイルを別の<ファイルとしてインストールする場合、またはリソース ID> が 1 の場合は、リソース ID のフィールドを省略できます。
example.exe。<リソース ID>.config
example.dll。<リソース ID>.config
要素
要素と属性の名前では、大文字と小文字が区別されます。 要素と属性の値は、type 属性の値を除き、すべて大文字と小文字が区別されません。
configuration
アプリケーション構成ファイルの windows 要素と ランタイム 要素のコンテナー要素。 必須。
Windows
Win32 アセンブリのリダイレクトに適用されるアプリケーション構成ファイルの部分が含まれます。
Note
アプリケーションの作成者は、アプリケーションの一部として Windows サブ要素を含む構成ファイルを含めてはいけません。 これは、構成ファイルの唯一の目的がプローブ要素の privatePath 機能を有効にする場合に許可される場合があります。 プローブ要素は、Windows Server 2008 R2 および Windows 7 より前のシステムでは使用できません。
publisherPolicy
発行者ポリシーを適用するかどうかを指定します。
この要素には、次の表に示す属性があります。
属性 | 説明 |
---|---|
apply | 値が "yes" の場合、発行元ポリシーが適用されます。 これが既定の設定です。 値 "no" は発行元ポリシーを適用しません。 |
ランタイム
.Net アセンブリのリダイレクトに適用されるアプリケーション構成ファイルの部分が含まれます。
assemblyBinding
アプリケーションのリダイレクト情報と、このアプリケーション構成ファイルの影響を受けるアセンブリが含まれます。 assemblyBinding の最初のサブ要素は、アプリケーションを識別する assemblyIdentity である必要があります。
Windows Server 2008 R2 および Windows 7 以降では、 assemblyBinding 要素にプローブ サブ要素 を 含めることができます。
プロービング
アセンブリの検索を追加のディレクトリに拡張する assemblyBinding 要素の省略可能なサブ要素。 追加のディレクトリは、アセンブリのディレクトリのサブディレクトリである必要はありません。
Note
この要素は、Windows Server 2008 R2 および Windows 7 より前のシステムでは使用できず、 windows 要素内でのみ使用できます。
この要素には、次の表に示す属性があります。
属性 | 説明 |
---|---|
Privatepath | アセンブリを含む可能性があるアプリケーションのベース ディレクトリのサブディレクトリの 相対パス を指定します。 最大 9 つのサブディレクトリ パスを指定できます。 各サブディレクトリ パスをセミコロンで区切ります。 |
パス内の二重ドット特殊指定子を使用して、現在のディレクトリの親ディレクトリを示すことができます。 現在のディレクトリの 2 つ以上のレベルは、二重ドットを使用して指定できません。 三重ドットは使用しないでください。 たとえば、次のプローブ要素を使用 する アプリケーションは、アセンブリの追加のディレクトリをチェックします。
<probing privatePath="bin;..\bin2\subbin;bin3"/>
dependency
少なくとも 1 つの dependentAssembly のコンテナー要素。 すべての dependentAssembly は、 1 つの 依存関係内に存在できます。 この要素には属性はありません。 省略可能。
dependentAssembly
最初のサブ要素は、アプリケーション構成ファイルによってリダイレクトされるサイド バイ サイド アセンブリを識別する assemblyIdentity 要素である必要があります。 dependentAssembly には属性がありません。
assemblyIdentity
assemblyBinding 要素の最初のサブ要素として、assemblyIdentity はアプリケーションを記述し、一意に識別します。 アプリケーション構成ファイルは、このアプリケーションのバインドをサイド バイ サイド アセンブリにリダイレクトします。 たとえば、次の assemblyIdentity は、アプリケーション構成ファイルがアプリケーション mysampleApp からサイド バイ サイド アセンブリへのバインドに影響することを示します。 リダイレクトされるアセンブリは 、dependentAssembly で識別されます。
<assemblyIdentity processorArchitecture="X86" name="Microsoft.Windows.mysampleApp" type="win32" version="1.0.0.0"/>
dependentAssembly 要素の最初のサブ要素として、assemblyIdentity は、アプリケーションが依存するサイド バイ サイド アセンブリを記述します。 アプリケーション構成ファイルは、この必要なアセンブリの ID を再構成します。 たとえば、次の assemblyIdentity と bindingRedirect は、Microsoft.Windows.SampleAssembly への依存関係をバージョン 2.0.0.0 からバージョン 2.1.0.0 に再構成します。
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32"
name="Microsoft.Windows.SampleAssembly"
processorArchitecture="x86"
publicKeyToken="0000000000000000"/>
<bindingRedirect oldVersion="2.0.0.0" newVersion="2.1.0.0"/>
</dependentAssembly>
</dependency>
dependentAssembly に含まれるすべての assemblyIdentity は、アセンブリの独自のアセンブリ マニフェスト内の assemblyIdentity と完全に一致する必要があることに注意してください。
assemblyIdentity 要素には、次の属性があります。 サブ要素はありません。
属性 | 説明 |
---|---|
type | 値は win32 (小文字) である必要があります。 必須。 |
name | name 属性は、アプリケーション構成ファイルまたはリダイレクトされるアセンブリの影響を受けるアプリケーションを識別します。 名前には、次の形式を使用します: Organization.Division.Name。 必須。 例: Microsoft.Windows.MysampleApp または Microsoft.Windows.MysampleAsm。 |
language | 言語を識別します。 省略可能。 アセンブリを参照する assemblyIdentity の場合、アセンブリが言語固有の場合は、DHTML 言語コードを指定します。 アセンブリが世界中で使用される (言語に依存しない) 場合は、値を "*" に設定します。 |
processorArchitecture | アプリケーションを実行しているプロセッサを指定します。 |
version | アプリケーションまたはアセンブリのバージョンを指定します。 4 部構成のバージョン構文を使用します: mmmm.nnnn.oooo.pppp。 必須。 |
publicKeyToken | アセンブリを参照する assemblyIdentity の 場合、アセンブリが署名されている公開キーの SHA-1 ハッシュの最後の 8 バイトを表す 16 文字の 16 進数文字列。 カタログの署名に使用される公開キーは、2048 ビット以上である必要があります。 すべての共有サイド バイ サイド アセンブリに必要です。 |
bindingRedirect
bindingRedirect 要素には、アセンブリのバインドに関するリダイレクト情報が含まれています。 各 bindingRedirect は、1 つの dependentAssembly に含まれている必要があります。 新しいバージョンと古いバージョンの 4 部構成のバージョン構文では、同じメジャー バージョンとマイナー バージョンを指定する必要があります。
この要素には、次の表に示す属性があります。
属性 | 説明 |
---|---|
oldVersion | オーバーライドおよびリダイレクトされるアセンブリ バージョンを指定します。 4 部構成のバージョン構文 nnnnn.nnnnnnn.nnnnn.nnnnn を使用します。 バージョンの範囲をスペースなしでダッシュで指定します。 たとえば、2.14.3.0 や 2.14.3.0 2.16.0.0 などです。 必須。 |
newVersion | 置換アセンブリのバージョンを指定します。 4 部構成のバージョン構文 nnnnn.nnnnn.nnnnn.nnnnn を使用します。 |
解説
アプリケーション構成ファイルでは、ファイルは指定されません。
例
<bindingRedirect oldVersion="1.0.0.0" newVersion="1.0.10.0"/>
<bindingRedirect oldVersion="1.0.50.2011-1.0.60.65535" newVersion="1.0.70.0"/>