そのため、ユーザースコープの設定がいくつかありますが、何らかの理由でそれらが .exe.config ファイルに保存されていません。私は次のことを行います:
Properties.Settings.Default.Email = "new@value.com";
Properties.Settings.Default.Save();
それでも、デバッグ フォルダーの設定ファイルを確認すると、Visual Studio で設定したデフォルトのままです。私はこれを間違っていますか?
そのため、ユーザースコープの設定がいくつかありますが、何らかの理由でそれらが .exe.config ファイルに保存されていません。私は次のことを行います:
Properties.Settings.Default.Email = "new@value.com";
Properties.Settings.Default.Save();
それでも、デバッグ フォルダーの設定ファイルを確認すると、Visual Studio で設定したデフォルトのままです。私はこれを間違っていますか?
ユーザー設定はユーザーに固有であるため、システム全体の .exe.config ファイルに保存されません。
のドキュメントからLocalSettingsProvider
:
アプリケーション スコープの設定と既定のユーザー スコープの設定は、application.exe.config という名前のファイルに格納されます。このファイルは、実行可能ファイルと同じディレクトリに作成されます。アプリケーション構成設定は読み取り専用です。特定のユーザー データは
username.config
、ユーザーのホーム ディレクトリにある という名前のファイルに格納されます。
したがって、デバッガーの下で VS から実行するだけの UserSettingsTest アプリケーションの場合 (したがって、vshost ビット)、次のパスになりました。
C:\Users\Jon\AppData\Local\UserSettingsTest
\UserSettingsTest.vshost.e_Url_pdqoppugkz1vaawbhwkkcu5ibxpi2fgu
\1.0.0.0\user.config
アセンブリ情報がバージョン番号 (1.0.*) を自動的に生成するように設定されている場合、アプリをデバッグするたびにバージョン番号が異なるため、毎回新しいファイルが作成されます。
この場合、設定ファイルをアップグレードする必要があります。
Properties.Settings.Default.Upgrade()
アプリを起動するたびにバージョン番号を変更していないエンド ユーザーが常にアップグレードしないように、デフォルトで を設定し、アップグレード後に false にNeedsUpgrading
設定することもできます。true
すべてのユーザー スコープ設定は、アプリケーションのバージョンと名前を示すフォルダー内のアプリケーション データの下に保存されます。
これらのフォルダは、[アプリケーション設定] ダイアログで [同期] をクリックすると表示されます。
一般に、Vista では次のようになります。
設定が現在のユーザーとUACに関連しているため、このように実行されます。Vista では、アプリケーション全体の設定が構成ファイルに保存されていないこともわかります。
[CompanyName] と [ProductName] は、アセンブリ情報の設定から取得されます。