その他 - アプリケーション構成ファイル

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動

概要

アプリケーション構成ファイルは、アプリケーション固有の設定が記述された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のバージョンが使用される。

  • <supportedRuntime>タグがアプリケーション構成ファイルに存在しない場合
    • Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされている場合
      Visual Studio等でビルド時に指定した.Net Frameworkのバージョンが使用される。
    • Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされていない場合
      現在インストールされている最新の.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のアプリケーションの互換性を参照すること。