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 ファイル内の値を更新しますか?