Settings.settings ファイルと App.config ファイルの違い

.NET デスクトップアプリでアプリの構成を設定するファイルとして Settings.settings ファイルと App.config ファイルの2つがある。

それぞれの違いは次のとおり。


Settings.settings ファイル

設定のスコープには、アプリケーションスコープとユーザースコープの2つがある。

  • アプリケーションスコープ
    アプリケーション毎に不変の内容を設定する。
    たとえばデータベースの接続文字列。

    アプリからは読み取り専用となり更新はできない。
     

  • ユーザースコープ
    ユーザー毎に異なる内容を設定する。
    たとえばウインドウの表示位置やサイズ。

    アプリからは読み書き可能となるので更新もできる。


App.config

アプリ全体で共通の設定を保存するファイル。
アプリ毎に一ファイルとなるため、すべてのユーザーが共通で使う。

データベースの接続文字列やログ設定といった、アプリ全体で共通の設定を保存するのに適している。


それぞれの設定はビルド後にどこに格納されるのか

App.config

アプリの実行ファイルと同じフォルダに作られる 〈アプリ名〉.exe.config に格納される。
プロジェクトの種類によっては、ファイル名が 〈アプリ名〉.dll.config となるときもある。

Settings.settingsアプリケーション スコープ

〈アプリ名〉.exe.config に統合される。

Settings.settingsユーザー スコープ

user.config に格納される。
ファイルはユーザーのローカルアプリケーションデータフォルダ(%USERPROFILE%\AppData\Local\〈アプリ名〉\〈バージョン〉)に作られる。


優先度が高いのは App.config ファイル?

Settings.settings ファイルと App.config ファイルに違いがあるとき、IDE から Settings.settings ファイルを開こうとすると、App.config ファイルの値で更新して良いか確認される。

.settings ファイルでの現在の値は ~ です
app.config ファイルでの新しい値は ~ です

.settings ファイル内の値を更新しますか?


この記事が気に入ったらサポートをしてみませんか?