その他 - アプリケーション構成ファイル
概要
アプリケーション構成ファイルは、アプリケーション固有の設定が記述されたXML形式のファイルである。
これは、様々な設定を変更する時に使用し、実行するアプリケーションの*.exeファイルと同じフォルダに*.exe.configファイルとして存在する。
アプリケーション構成ファイル内のスタートアップ設定スキーマは、
アプリケーションを実行する必要のある共通言語ランタイム(以下、CLRとする)のバージョンを指定する。
要素 | 説明 |
---|---|
<requiredRuntime> | .Net Framework1.0の共通言語ランタイムのみがアプリケーションでサポートされることを指定する。 .Net Framework1.1でビルドされたアプリケーションは、<supportedRuntime>要素を使用する。 |
<supportedRuntime> | アプリケーションでサポートされる共通言語ランタイムのバージョンを指定する。 |
<startup> | <requiredRuntime>要素と<supportedRuntime>要素を含む。 |
<supportedRuntime>要素
アプリケーションがサポートするCLRのバージョンとオプションで.NET Frameworkのバージョンを指定する。
構文
<supportedRuntime version="runtime version" sku="sku id"/>
- version
- 省略可能な属性である。
- このアプリケーションがサポートするCLRのバージョンを指定する文字列である。
- version属性の有効な値については、version属性の値に関するセクションを参照してください。
- 注意 :
- .NET Framework3.5では、versionの値はmajorという形式になる。
- .NET Framework4以降では、メジャーバージョン番号とマイナーバージョン番号("v v4.0.30319"の代わりに"v4.0")のみが必要である。
- 短い文字列を使用することを推奨する。
- sku
- 省略可能な属性である。
- 在庫管理単位(SKU)を指定する文字列である。SKUはこのアプリケーションがサポートする.NET Frameworkのリリースを指定する。
- .NET Framework4.0以降では、sku属性の使用が推奨される。
- この属性を指定する場合は、アプリケーションが対象とする.NET Frameworkのバージョンを示す。
- sku属性の有効な値については、下記に示すsku属性の値に関するセクションを参照すること。
version属性
version属性は、アプリケーションに必要なCLRのバージョンを指定する。
全ての.NET Framework v4.xバージョンでv4.0が指定されていることに注意すること。
次の表に、version属性の有効な値を記載する。
.NET Frameworkのバージョン | version属性 |
---|---|
1.0 | "v1.0.3705" |
1.1 | "v1.1.4322" |
2.0 | "v2.0.50727" |
3.0 | "v2.0.50727" |
3.5 | "v2.0.50727" |
4.0 - 4.8 | "v4.0" |
5.0 | "net5.0" |
6.0 | "net6.0" |
7.0 | "net7.0" |
8.0 | "net8.0" |
9.0 | "net9.0" |
sku属性
sku属性は、ターゲットフレームワークモニカー (TFM) を使用して、アプリが対象として実行する必要がある.NET Framework のバージョンを示す。
※注意
この設定は、.NET Framework4以降の場合のみ指定する。
下表に、sku属性でサポートされている有効な値を記載する。
.NET Frameworkのバージョン | sku属性 |
---|---|
4.0 | ".NETFramework,Version=v4.0" |
4.0 Client Profile | ".NETFramework,Version=v4.0,Profile=Client" |
4.0 プラットフォームの更新プログラム 1 | ".NETFramework、Version = v 4.0.1" |
4.0 Client Profile、更新プログラム 1 | ".NETFramework,Version=v4.0.1,Profile=Client" |
4.0 プラットフォームの更新プログラム 2 | ".NETFramework、Version = v 4.0.2" |
4.0 Client Profile、更新プログラム 2 | ".NETFramework,Version=v4.0.2,Profile=Client" |
4.0 プラットフォームの更新プログラム 3 | ".NETFramework,Version=v4.0.3" |
4.0 Client Profile、更新プログラム 3 | ".NETFramework,Version=v4.0.3,Profile=Client" |
4.5 | ".NETFramework,Version=v4.5" |
4.5.1 | ".NETFramework,Version=v4.5.1" |
4.5.2 | ".NETFramework,Version=v4.5.2" |
4.6 | ".NETFramework,Version=v4.6" |
4.6.1 | ".NETFramework,Version=v4.6.1" |
4.6.2 | ".NETFramework,Version=v4.6.2" |
4.7 | ".NETFramework,Version=v4.7" |
4.7.1 | ".NETFramework,Version=v4.7.1" |
4.7.2 | ".NETFramework、Version = v 4.7.2" |
4.8 | ".NETFramework,Version=v4.8" |
アプリケーション構成ファイルの例
サポートされているCLRのバージョンを、構成ファイルで指定する例を示す。
ここでは、アプリケーション構成ファイルは、アプリケーションが.NET Framework4.7を対象としているものとする。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.7" />
</startup>
</configuration>
また、<supportedRuntime>要素を記述する順番で優先度が変わる。(先に記述したものが優先される)
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0.3,Profile=Client" />
</startup>
</configuration>
<TargetFrameworks>要素
プロジェクトファイル (.csproj) 内の<TargetFrameworks>
要素において、.NET Core以降のアプリケーションに必要なCLRのバージョンを指定する。
下表に、<TargetFrameworks>要素の有効な値を示す。
.NETのバージョン | <TargetFrameworks>要素 |
---|---|
.NET Core | .NET Core 2.1 : "netcoreapp2.1" .NET Core 3.1 : "netcoreapp3.1" |
5.0 | "net5.0" |
6.0 | "net6.0" |
7.0 | "net7.0" |
8.0 | "net8.0" |
9.0 | "net9.0" |
ターゲットフレームワークモニカーの詳細を知りたい場合は、インストール_-_.NET_SDK#プロジェクトのターゲッットフレームワークの指定のページを参照すること。
.NET Frameworkバージョン選択ロジック
<supportedruntime>
タグは、.Net Framework 1.1以降を使用してビルドした全てのアプリケーションで使用する必要がある。
ただし、.Net Framework1.0のみをサポートするようにビルドしたアプリケーションでは、<requiredRuntime>
タグを使用する必要がある。
.NETアプリケーションがどのようにして.Net Frameworkのバージョンを使い分けるかどうかを以下に示す。
アプリケーション構成ファイル (.configファイル) が存在する場合
<supportedRuntime>
タグがアプリケーション構成ファイルが存在する場合- 対応する.Net Frameworkのバージョンがインストールされている場合
- 対応する.Net Frameworkが使用される。
- 対応する.Net Frameworkのバージョンがインストールされていない場合
- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされている場合
- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンが使用される。
- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされていない場合
- 現在インストールされている最新の.Net Frameworkのバージョンが使用される。
- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされている場合
- 対応する.Net Frameworkのバージョンがインストールされている場合
<supportedRuntime>
タグがアプリケーション構成ファイルに存在しない場合- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされている場合
- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンが使用される。
- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされていない場合
- 現在インストールされている最新の.Net Frameworkのバージョンが使用される。
- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされている場合
アプリケーション構成ファイル (.configファイル) が存在しない場合
- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされている場合
- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンが使用される。
- Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされていない場合
- 現在インストールされている最新の.Net Frameworkのバージョンが使用される。
注意事項
アプリケーション構成ファイルにsku属性を持つ<supportedRuntime>要素が存在する時、
インストールされている.NET Frameworkのバージョンが古い場合は、
アプリケーションの実行は失敗し、代わりにサポートされる.Net Frameworkのバージョンのインストールを求めるメッセージが表示される。
それ以外の場合は、インストールされている任意のバージョンでアプリケーションを実行しようとするが、
そのバージョンと完全に互換性がないと、予期しない動作をする可能性がある。
.NET Frameworkのバージョン間の互換性の違いについては、.NET Frameworkのアプリケーションの互換性を参照すること。