構成ファイルを使用してアプリを構成する方法Configuring Apps by using Configuration Files

.NET Framework を使用すると、開発者および管理者は、構成ファイルを使用することにより、アプリケーションの実行方法を制御し、アプリケーションの実行に柔軟性を持たせることができます。The .NET Framework, through configuration files, gives developers and administrators control and flexibility over the way applications run. 構成ファイルは XML ファイルで、必要に応じて変更できます。Configuration files are XML files that can be changed as needed. 管理者は、アプリケーションからアクセスできるプロテクト リソース、アプリケーションが使用するアセンブリのバージョン、およびリモート アプリケーションやオブジェクトの配置場所を制御できます。An administrator can control which protected resources an application can access, which versions of assemblies an application will use, and where remote applications and objects are located. 開発者は、構成ファイル内に設定を格納できます。これにより、設定変更のたびにアプリケーションを再コンパイルする必要がなくなります。Developers can put settings in configuration files, eliminating the need to recompile an application every time a setting changes. このセクションでは、設定できる内容と、アプリケーションを設定することが有益である理由を説明します。This section describes what can be configured and why configuring an application might be useful.

注意

マネージ コードは、System.Configuration 名前空間のクラスを使用して、構成ファイルから設定を読み込むことができます。設定をファイルへ書き込むことはありません。Managed code can use the classes in the System.Configuration namespace to read settings from the configuration files, but not to write settings to those files.

ここでは、構成ファイルの構文を説明し、3 種類の構成ファイル (マシン構成ファイル、アプリケーション構成ファイル、およびセキュリティ構成ファイル) について情報を提供します。This topic describes the syntax of configuration files and provides information about the three types of configuration files: machine, application, and security.

構成ファイルの形式Configuration File Format

構成ファイルには、構成情報を設定する論理データ構造体である要素が含まれます。Configuration files contain elements, which are logical data structures that set configuration information. 構成ファイル内では、タグを使用して、それらの要素の先頭と末尾を示します。Within a configuration file, you use tags to mark the beginning and end of an element. たとえば、<runtime> 要素は <runtime>child elements</runtime> で構成されます。For example, the <runtime> element consists of <runtime>child elements</runtime>. 空の要素は <runtime/> または <runtime></runtime> として書き込まれます。An empty element would be written as <runtime/> or <runtime></runtime>.

XML ファイルと同様に、構成ファイル内の構文では、大文字と小文字が区別されます。As with all XML files, the syntax in configuration files is case-sensitive.

構成設定は、要素の開始タグの内部に、定義済みの属性の名前と値を組み合わせて使用することで指定します。You specify configuration settings using predefined attributes, which are name/value pairs inside an element's start tag. <codeBase> 要素に 2 つの属性 (version および href) を指定して、ランタイムがアセンブリを検索する場所を指定する例を次に示します。詳細については、「アセンブリの場所の指定」を参照してください。The following example specifies two attributes (version and href) for the <codeBase> element, which specifies where the runtime can locate an assembly (for more information, see Specifying an Assembly's Location).

<codeBase version="2.0.0.0"  
          href="http://www.litwareinc.com/myAssembly.dll"/>  

マシン構成ファイルMachine Configuration Files

マシン構成ファイル Machine.config には、コンピューター全体に適用する設定を含めます。The machine configuration file, Machine.config, contains settings that apply to an entire computer. このファイルは、%runtime install path%\Config ディレクトリに含まれています。This file is located in the %runtime install path%\Config directory. Machine.config には、マシン全体のアセンブリ バインディング、組み込みのリモート処理チャネル、および ASP.NET に関する構成設定が含まれます。Machine.config contains configuration settings for machine-wide assembly binding, built-in remoting channels, and ASP.NET.

構成システムは、まずマシン構成ファイル内で、 <appSettings> 要素と、開発者が定義したその他の構成セクションを調べます。The configuration system first looks in the machine configuration file for the <appSettings> element and other configuration sections that a developer might define. 次に、アプリケーション構成ファイルを調べます。It then looks in the application configuration file. マシン構成ファイルを管理しやすくするには、これらの設定をアプリケーション構成ファイルに配置するのが最適です。To keep the machine configuration file manageable, it is best to put these settings in the application configuration file. しかし、それらの設定をマシン構成ファイル内に配置した方が、システムの保守が簡単になります。However, putting the settings in the machine configuration file can make your system more maintainable. たとえば、クライアント アプリケーションとサーバー アプリケーションの両方で使用されるサードパーティ コンポーネントがある場合、そのコンポーネントの設定を 1 か所に設まとめた方が簡単です。For example, if you have a third-party component that both your client and server application uses, it is easier to put the settings for that component in one place. この場合、同じ設定を 2 つのファイルに配置する必要がなくなるという点から、設定を格納するのに適した場所はマシン構成ファイルになります。In this case, the machine configuration file is the appropriate place for the settings, so you don't have the same settings in two different files.

注意

XCOPY を使用してアプリケーションを配置しても、マシン構成ファイル内の設定はコピーされません。Deploying an application using XCOPY will not copy the settings in the machine configuration file.

共通言語ランタイムがアセンブリ バインディングに関してマシン構成ファイルを使用する方法の詳細については、「ランタイムがアセンブリを検索する方法」を参照してください。For more information about how the common language runtime uses the machine configuration file for assembly binding, see How the Runtime Locates Assemblies.

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

アプリケーション構成ファイルは、アプリケーション固有の設定を含みます。An application configuration file contains settings that are specific to an app. このファイルには、アセンブリ バインディング ポリシー、リモート処理オブジェクトなど、共通言語ランタイムが読み取る構成設定と、アプリケーションが読み取ることのできる設定を含めます。This file includes configuration settings that the common language runtime reads (such as assembly binding policy, remoting objects, and so on), and settings that the app can read.

アプリケーション構成ファイルの名前と場所は、アプリケーションのホストによって異なり、次のいずれかの場合が考えられます。The name and location of the application configuration file depend on the app's host, which can be one of the following:

  • 実行可能ファイルによってホストされるアプリケーション。Executable–hosted app.

    これらのアプリケーションには構成ファイルが 2 つあります。開発中に開発者によって変更されるソース構成ファイルと、アプリケーションと共に配布される出力構成ファイルです。These apps have two configuration files: a source configuration file, which is modified by the developer during development, and an output file that is distributed with the app.

    Visual Studio で開発するときは、プロジェクト ディレクトリにアプリケーションのソース構成ファイルを配置し、その [出力ディレクトリにコピー] プロパティを [常にコピーする] または [新しい場合はコピーする] に設定します。When you develop in Visual Studio, place the source configuration file for your app in the project directory and set its Copy To Output Directory property to Copy always or Copy if newer. この構成ファイルの名前は、アプリケーション名に拡張子 .config を付けた名前になります。The name of the configuration file is the name of the app with a .config extension. たとえば、myApp.exe という名前のアプリケーションは、myApp.exe.config という名前のソース構成ファイルを持ちます。For example, an app called myApp.exe should have a source configuration file called myApp.exe.config.

    Visual Studio は、コンパイル済みアセンブリが格納されるディレクトリに自動的にソース構成ファイルをコピーして、アプリケーションと共に配置される出力構成ファイルを作成します。Visual Studio automatically copies the source configuration file to the directory where the compiled assembly is placed to create the output configuration file, which is deployed with the app. 場合によっては、Visual Studio が出力構成ファイルを変更することがあります。詳細については、「アセンブリ バージョンのリダイレクト」の「アプリ レベルでのアセンブリ バージョンのリダイレクト」を参照してください。In some cases, Visual Studio may modify the output configuration file; for more information, see the Redirecting assembly versions at the app level section of the Redirecting Assembly Versions article.

  • ASP.NET によってホストされるアプリケーション。ASP.NET-hosted app.

    ASP.NET 構成ファイルの詳細については、次を参照してください。 ASP.NET 構成設定します。For more information about ASP.NET configuration files, see ASP.NET Configuration Settings.

  • Internet Explorer によってホストされるアプリケーション。Internet Explorer-hosted app.

    Internet Explorer でホストされるアプリケーションに構成ファイルが関連付けられている場合、そのファイルの場所は、<link> タグ内に次の構文で指定します。If an app hosted in Internet Explorer has a configuration file, the location of this file is specified in a <link> tag with the following syntax:

    <link rel="ConfigurationFileName" href="location"><link rel="ConfigurationFileName" href="location">

    このタグ内の location は、構成ファイルの場所を示す URL です。In this tag, location is a URL to the configuration file. これにより、アプリケーション ベースが設定されます。This sets the app base. 構成ファイルは、アプリケーションと同じ Web サイトに配置する必要があります。The configuration file must be located on the same website as the app.

セキュリティ構成ファイルSecurity Configuration Files

セキュリティ構成ファイルには、コード グループ階層構造に関する情報と、ポリシー レベルに関連付けたアクセス許可セットを含めます。Security configuration files contain information about the code group hierarchy and permission sets associated with a policy level. セキュリティ ポリシーを変更するときは、ポリシーの変更によってセキュリティ構成ファイルが破損しないように、コード アクセス セキュリティ ポリシー ツール (Caspol.exe) を使用することを強くお勧めします。We strongly recommend that you use the Code Access Security Policy tool (Caspol.exe) to modify security policy to ensure that policy changes do not corrupt the security configuration files.

注意

以降、.NET Framework 4 では、セキュリティの構成ファイルは、セキュリティ ポリシーが変更された場合にのみ存在します。Starting with the .NET Framework 4, the security configuration files are present only if security policy has been changed.

セキュリティ構成ファイルは次の場所にあります。The security configuration files are in the following locations:

  • エンタープライズ ポリシー構成ファイル: %runtime-install-path%\Config\Enterprisesec.configEnterprise policy configuration file: %runtime-install-path%\Config\Enterprisesec.config

  • コンピューター ポリシー構成ファイル: %runtime-install-path%\Config\Security.configMachine policy configuration file: %runtime-install-path%\Config\Security.config

  • ユーザー ポリシー構成ファイル: %USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.configUser policy configuration file: %USERPROFILE%\Application data\Microsoft\CLR security config\vxx.xx\Security.config

このセクションの内容In This Section

方法: DEVPATH を使用してアセンブリを検索します。How to: Locate Assemblies by Using DEVPATH
アセンブリ検索のときに DEVPATH 環境変数を使用するようにランタイムに指示する方法を説明します。Describes how to direct the runtime to use the DEVPATH environment variable when searching for assemblies.

アセンブリ バージョンのリダイレクトRedirecting Assembly Versions
アセンブリの場所および使用するアセンブリ バージョンを指定する方法を説明します。Describes how to specify the location of an assembly and which version of an assembly to use.

アセンブリの場所の指定Specifying an Assembly's Location
ランタイムがどの場所でアセンブリを検索するかを指定する方法を説明します。Describes how to specify where the runtime should search for an assembly.

暗号化クラスの設定Configuring Cryptography Classes
暗号化クラスにアルゴリズム名を割り当てる方法と、暗号化アルゴリズムにオブジェクト ID を割り当てる方法を説明します。Describes how to map an algorithm name to a cryptography class and an object identifier to a cryptography algorithm.

方法: 発行者ポリシーを作成します。How to: Create a Publisher Policy
アセンブリのリダイレクトやコード ベース設定を指定する発行者ポリシー ファイルを追加する状況や方法を説明します。Describes when and how you should add a publisher policy file to specify assembly redirection and code base settings.

構成ファイル スキーマConfiguration File Schema
スキーマ、起動時の階層、ランタイム、ネットワーク、およびその他の種類の構成設定を説明します。Describes the schema hierarchy for startup, runtime, network, and other types of configuration settings.

関連項目See also