「その他 - アプリケーション構成ファイル」の版間の差分

提供:MochiuWiki : SUSE, EC, PCB
ナビゲーションに移動 検索に移動
(Wiki がページ「アプリケーション構成ファイル(C Sharp)」を「その他 - アプリケーション構成ファイル」に、リダイレクトを残さずに移動しました)
 
(同じ利用者による、間の6版が非表示)
6行目: 6行目:
アプリケーションを実行する必要のある共通言語ランタイム(以下、CLRとする)のバージョンを指定する。<br>
アプリケーションを実行する必要のある共通言語ランタイム(以下、CLRとする)のバージョンを指定する。<br>
<center>
<center>
{| class="wikitable"
{| class="wikitable" | style="background-color:#fefefe;"
|-
|-
! 要素 !! 説明
! style="background-color:#66CCFF;" | 要素  
! style="background-color:#66CCFF;" | 説明
|-
|-
| <requiredRuntime> || .Net Framework1.0の共通言語ランタイムのみがアプリケーションでサポートされることを指定する。<br>.Net Framework1.1でビルドされたアプリケーションは、<supportedRuntime>要素を使用する。
| <requiredRuntime> || .Net Framework1.0の共通言語ランタイムのみがアプリケーションでサポートされることを指定する。<br>.Net Framework1.1でビルドされたアプリケーションは、<supportedRuntime>要素を使用する。
22行目: 23行目:
アプリケーションがサポートするCLRのバージョンとオプションで.NET Frameworkのバージョンを指定する。<br>
アプリケーションがサポートするCLRのバージョンとオプションで.NET Frameworkのバージョンを指定する。<br>
<br>
<br>
===== 構文 =====
==== 構文 ====
  <supportedRuntime version="runtime version" sku="sku id"/>
  <supportedRuntime version="runtime version" sku="sku id"/>
* version
* version
42行目: 43行目:
*: sku属性の有効な値については、下記に示すsku属性の値に関するセクションを参照すること。
*: sku属性の有効な値については、下記に示すsku属性の値に関するセクションを参照すること。
<br>
<br>
===== version属性の値 =====
==== version属性 ====
version属性は、アプリケーションに必要なCLRのバージョンを指定する。<br>
version属性は、アプリケーションに必要なCLRのバージョンを指定する。<br>
全ての.NET Framework v4.xバージョンでv4.0が指定されていることに注意すること。<br>
全ての.NET Framework v4.xバージョンでv4.0が指定されていることに注意すること。<br>
48行目: 49行目:
次の表に、version属性の有効な値を記載する。<br>
次の表に、version属性の有効な値を記載する。<br>
<center>
<center>
{| class="wikitable"
{| class="wikitable" | style="background-color:#fefefe;"
|-
|-
! .NET Frameworkのバージョン !! version属性
! style="background-color:#66CCFF;" | .NET Frameworkのバージョン  
! style="background-color:#66CCFF;" | version属性
|-
|-
| 1.0 || "v1.0.3705"
| 1.0 || "v1.0.3705"
63行目: 65行目:
|-
|-
| 4.0 - 4.8 || "v4.0"
| 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"
|}
|}
</center>
</center>
<br>
<br>
===== sku属性の値 =====
==== sku属性 ====
sku属性は、ターゲットフレームワークモニカー(TFM)を使用して、アプリが対象として実行する必要がある.NET Framework のバージョンを示す。<br>
sku属性は、ターゲットフレームワークモニカー (TFM) を使用して、アプリが対象として実行する必要がある.NET Framework のバージョンを示す。<br>
'''※この設定は、.NET Framework4以降の場合のみ指定する。'''<br>
<br>
<u>※注意</u><br>
<u>この設定は、.NET Framework4以降の場合のみ指定する。</u><br>
<br>
<br>
下表に、sku属性でサポートされている有効な値を記載する。<br>
下表に、sku属性でサポートされている有効な値を記載する。<br>
<center>
<center>
{| class="wikitable"
{| class="wikitable" | style="background-color:#fefefe;"
|-
|-
! .NET Frameworkのバージョン !! sku属性
! style="background-color:#66CCFF;" | .NET Frameworkのバージョン  
! style="background-color:#66CCFF;" | sku属性
|-
|-
| 4.0 || ".NETFramework,Version=v4.0"
| 4.0 || ".NETFramework,Version=v4.0"
114行目: 129行目:
</center>
</center>
<br>
<br>
===== アプリケーション構成ファイルの例 =====
==== アプリケーション構成ファイルの例 ====
サポートされているCLRのバージョンを、構成ファイルで指定する例を示す。<br>
サポートされているCLRのバージョンを、構成ファイルで指定する例を示す。<br>
ここでは、アプリケーション構成ファイルは、アプリケーションが.NET Framework4.7を対象としているものとする。<br>
ここでは、アプリケーション構成ファイルは、アプリケーションが.NET Framework4.7を対象としているものとする。<br>
  <source lang="xml">
  <syntaxhighlight lang="xml">
  <?xml version="1.0" encoding="utf-8" ?>
  <?xml version="1.0" encoding="utf-8" ?>
  <configuration>
  <configuration>
124行目: 139行目:
     </startup>
     </startup>
  </configuration>
  </configuration>
  </source>
  </syntaxhighlight>
<br>
<br>
また、<supportedRuntime>要素を記述する順番で優先度が変わる。(先に記述したものが優先される)<br>
また、<supportedRuntime>要素を記述する順番で優先度が変わる。(先に記述したものが優先される)<br>
  <source lang="xml">
  <syntaxhighlight lang="xml">
  <?xml version="1.0" encoding="utf-8" ?>
  <?xml version="1.0" encoding="utf-8" ?>
  <configuration>
  <configuration>
135行目: 150行目:
     </startup>
     </startup>
  </configuration>
  </configuration>
  </source>
  </syntaxhighlight>
<br><br>
 
== <TargetFrameworks>要素 ==
プロジェクトファイル (.csproj) 内の<code><TargetFrameworks></code>要素において、.NET Core以降のアプリケーションに必要なCLRのバージョンを指定する。<br>
<br>
下表に、<TargetFrameworks>要素の有効な値を示す。<br>
<center>
{| class="wikitable" | style="background-color:#fefefe;"
|-
! style="background-color:#66CCFF;" | .NETのバージョン
! style="background-color:#66CCFF;" | <TargetFrameworks>要素
|-
| .NET Core || .NET Core 2.1 : "netcoreapp2.1"<br>.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"
|}
</center>
<br>
ターゲットフレームワークモニカーの詳細を知りたい場合は、[[インストール_-_.NET_SDK#プロジェクトのターゲッットフレームワークの指定]]のページを参照すること。<br>
<br><br>
<br><br>


== 備考 ==
== .NET Frameworkバージョン選択ロジック ==
<supportedruntime>要素は、.Net Framework1.1以降を使用してビルドした全てのアプリケーションで使用する必要がある。<br>
<code><supportedruntime></code>タグは、.Net Framework 1.1以降を使用してビルドした全てのアプリケーションで使用する必要がある。<br>
ただし、.Net Framework1.0のみをサポートするようにビルドしたアプリケーションでは、<requiredRuntime>要素を使用する必要がある。<br>
ただし、.Net Framework1.0のみをサポートするようにビルドしたアプリケーションでは、<code><requiredRuntime></code>タグを使用する必要がある。<br>
<br>
<br>
以下に、アプリケーションがどのようにして.Net Frameworkのバージョンを使用するかをまとめる。<br>
.NETアプリケーションがどのようにして.Net Frameworkのバージョンを使い分けるかどうかを以下に示す。<br>
<br>
<br>
* アプリケーション構成ファイル(.configファイル)が存在する場合
==== アプリケーション構成ファイル (.configファイル) が存在する場合 ====
** <supportedRuntime>要素がアプリケーション構成ファイルが存在する場合
* <code><supportedRuntime></code>タグが<u>アプリケーション構成ファイルが存在する</u>場合
***  対応する.Net Frameworkのバージョンがインストールされている場合
**  対応する.Net Frameworkのバージョンがインストールされている場合
***: 対応する.Net Frameworkが使用される。
**: 対応する.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のバージョンが使用される。
***: Visual Studio等でビルド時に指定した.Net Frameworkのバージョンが使用される。
*** Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされていない場合
*** Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされていない場合
***: 現在インストールされている最新の.Net Frameworkのバージョンが使用される。
***: 現在インストールされている最新の.Net Frameworkのバージョンが使用される。
<br>
*: <br>
* アプリケーション構成ファイル(.configファイル)が存在しない場合
* <code><supportedRuntime></code>タグが<u>アプリケーション構成ファイルに存在しない</u>場合
** Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされている場合
** Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされている場合
**: Visual Studio等でビルド時に指定した.Net Frameworkのバージョンが使用される。
**: Visual Studio等でビルド時に指定した.Net Frameworkのバージョンが使用される。
** Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされていない場合
** Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされていない場合
**: 現在インストールされている最新の.Net Frameworkのバージョンが使用される。
**: 現在インストールされている最新の.Net Frameworkのバージョンが使用される。
<br>
==== アプリケーション構成ファイル (.configファイル) が存在しない場合 ====
* Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされている場合
*: Visual Studio等でビルド時に指定した.Net Frameworkのバージョンが使用される。
*: <br>
* Visual Studio等でビルド時に指定した.Net Frameworkのバージョンがインストールされていない場合
*: 現在インストールされている最新の.Net Frameworkのバージョンが使用される。
<br><br>
<br><br>


175行目: 219行目:
.NET Frameworkのバージョン間の互換性の違いについては、.NET Frameworkの[https://docs.microsoft.com/dotnet/framework/migration-guide/application-compatibility アプリケーションの互換性]を参照すること。<br>
.NET Frameworkのバージョン間の互換性の違いについては、.NET Frameworkの[https://docs.microsoft.com/dotnet/framework/migration-guide/application-compatibility アプリケーションの互換性]を参照すること。<br>
<br><br>
<br><br>
{{#seo:
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,Podman,電気回路,電子回路,基板,プリント基板
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux
|image=/resources/assets/MochiuLogo_Single_Blue.png
}}


__FORCETOC__
__FORCETOC__
[[カテゴリ:C_Sharp]]
[[カテゴリ:C_Sharp]]

2025年1月7日 (火) 03:08時点における最新版

概要

アプリケーション構成ファイルは、アプリケーション固有の設定が記述された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のアプリケーションの互換性を参照すること。