構成ファイルを使用したアプリの構成
.NET Framework を使用すると、開発者および管理者は、"構成ファイル" を使用することにより、アプリケーションの実行方法を柔軟に制御できるようになります。 構成ファイルは XML ファイルで、必要に応じて変更できます。 管理者は、アプリケーションからアクセスできるプロテクト リソース、アプリケーションが使用するアセンブリのバージョン、およびリモート アプリケーションやオブジェクトの配置場所を制御できます。 開発者は、構成ファイル内に設定を格納できます。これにより、設定変更のたびにアプリケーションを再コンパイルする必要がなくなります。 このセクションでは、設定できる内容と、アプリケーションを設定することが有益である理由を説明します。
Note
マネージド コードは、System.Configuration 名前空間のクラスを使用して、構成ファイルから設定を読み込むことができます。設定をファイルへ書き込むことはありません。
ここでは、構成ファイルの構文を説明し、3 種類の構成ファイル (マシン、アプリケーション、およびセキュリティ) について情報を提供します。
構成ファイル形式
構成ファイルには、構成情報を設定する論理データ構造体である要素が含まれます。 構成ファイル内では、タグを使用して、それらの要素の先頭と末尾を示します。 たとえば、<runtime>
要素は <runtime>
child elements</runtime>
で構成されます。 空の要素は <runtime/>
または <runtime></runtime>
として書き込まれます。
XML ファイルと同様に、構成ファイル内の構文では、大文字と小文字が区別されます。
構成設定は、要素の開始タグの内部に、定義済みの属性の名前と値を組み合わせて使用することで指定します。 <codeBase>
要素に 2 つの属性 (version
および href
) を指定して、ランタイムがアセンブリを検索する場所を指定する例を次に示します。詳細については、「アセンブリの場所の指定」を参照してください。
<codeBase version="2.0.0.0"
href="http://www.litwareinc.com/myAssembly.dll"/>
マシン構成ファイル
マシン構成ファイル Machine.config には、コンピューター全体に適用する設定を含めます。 このファイルは、%runtime install path%\Config ディレクトリに含まれています。 Machine.config には、マシン全体のアセンブリ バインディング、組み込みのリモート処理チャネル、ASP.NET に関する構成設定が含まれます。
構成システムは、まずマシン構成ファイル内で、<appSettings> 要素と、開発者が定義したその他の構成セクションを調べます。 次に、アプリケーション構成ファイルを調べます。 マシン構成ファイルを管理しやすくするには、これらの設定をアプリケーション構成ファイルに配置するのが最適です。 しかし、それらの設定をマシン構成ファイル内に配置した方が、システムの保守が簡単になります。 たとえば、クライアント アプリケーションとサーバー アプリケーションの両方で使用されるサードパーティ コンポーネントがある場合、そのコンポーネントの設定を 1 か所に設まとめた方が簡単です。 この場合、同じ設定を 2 つのファイルに配置する必要がなくなるという点から、設定を格納するのに適した場所はマシン構成ファイルになります。
Note
XCOPY を使用してアプリケーションを配置しても、マシン構成ファイル内の設定はコピーされません。
共通言語ランタイムがアセンブリ バインディングに関してマシン構成ファイルを使用する方法の詳細については、「ランタイムがアセンブリを検索する方法」を参照してください。
アプリケーション構成ファイル
アプリケーション構成ファイルは、アプリケーション固有の設定を含みます。 このファイルには、アセンブリ バインディング ポリシー、リモート処理オブジェクトなど、共通言語ランタイムが読み取る構成設定と、アプリケーションが読み取ることのできる設定を含めます。
アプリケーション構成ファイルの名前と場所は、アプリケーションのホストによって異なり、次のいずれかの場合が考えられます。
実行可能ファイルによってホストされるアプリケーション。
これらのアプリケーションには 2 つの構成ファイルがあります。開発中に開発者によって変更されるソース構成ファイルと、アプリケーションと共に配布される出力構成ファイルです。
Visual Studio で開発するときは、プロジェクト ディレクトリにアプリケーションのソース構成ファイルを配置し、その [出力ディレクトリにコピー] プロパティを [常にコピーする] または [新しい場合はコピーする] に設定します。 既定では、構成ファイルの名前は App.config です。
アプリで配置される出力構成ファイルを作成するため、Visual Studio は、コンパイル済みアセンブリが格納されるディレクトリにソース構成ファイルをコピーします。 このファイルには、<yourappname>.exe.config という名前が付けられます。たとえば、myApp.exe という名前のアプリには、myApp.exe.config という名前の出力構成ファイルがあります。
場合によっては、Visual Studio が出力構成ファイルを変更することがあります。詳細については、「アセンブリ バージョンのリダイレクト」の「アプリ レベルでのアセンブリ バージョンのリダイレクト」を参照してください。
ASP.NET によってホストされるアプリケーション。
ASP.NET 構成ファイルの詳細については、「ASP.NET の構成設定」を参照してください。
Internet Explorer によってホストされるアプリケーション。
Internet Explorer でホストされるアプリケーションに構成ファイルが関連付けられている場合、そのファイルの場所は、
<link>
タグ内に<link rel="*ConfigurationFileName*" href="*location*">
の構文で指定されます。このタグ内の
location
は、構成ファイルの場所を示す URL です。 これにより、アプリケーション ベースが設定されます。 構成ファイルは、アプリケーションと同じ Web サイトに配置する必要があります。
セキュリティ構成ファイル
セキュリティ構成ファイルには、コード グループ階層構造に関する情報と、ポリシー レベルに関連付けたアクセス許可セットを含めます。 セキュリティ ポリシーを変更するときは、ポリシーの変更によってセキュリティ構成ファイルが破損しないように、コード アクセス セキュリティ ポリシー ツール (Caspol.exe) を使用することを強くお勧めします。
Note
.NET Framework 4 以降では、セキュリティ構成ファイルはセキュリティ ポリシーが変更された場合にのみ存在します。
セキュリティ構成ファイルは次の場所にあります。
エンタープライズ ポリシー構成ファイル: %runtime-install-path%\Config\Enterprisesec.config
コンピューター ポリシー構成ファイル: %runtime-install-path%\Config\Security.config
ユーザー ポリシー構成ファイル: %USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config