アプリケーション構成ファイル

アプリケーション構成ファイルは、アセンブリ バインドを制御するために使用される 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 を再構成します。 たとえば、次の assemblyIdentitybindingRedirect は、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"/>