18

そのため、ユーザースコープの設定がいくつかありますが、何らかの理由でそれらが .exe.config ファイルに保存されていません。私は次のことを行います:

Properties.Settings.Default.Email = "new@value.com";
Properties.Settings.Default.Save();

それでも、デバッグ フォルダーの設定ファイルを確認すると、Visual Studio で設定したデフォルトのままです。私はこれを間違っていますか?

4

4 に答える 4

24

ユーザー設定はユーザーに固有であるため、システム全体の .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
于 2009-06-28T07:12:59.170 に答える
21

アセンブリ情報がバージョン番号 (1.0.*) を自動的に生成するように設定されている場合、アプリをデバッグするたびにバージョン番号が異なるため、毎回新しいファイルが作成されます。

この場合、設定ファイルをアップグレードする必要があります。

Properties.Settings.Default.Upgrade()

アプリを起動するたびにバージョン番号を変更していないエンド ユーザーが常にアップグレードしないように、デフォルトで を設定し、アップグレード後に false にNeedsUpgrading設定することもできます。true

于 2009-06-28T07:25:35.243 に答える
2

すべてのユーザー スコープ設定は、アプリケーションのバージョンと名前を示すフォルダー内のアプリケーション データの下に保存されます。

これらのフォルダは、[アプリケーション設定] ダイアログで [同期] をクリックすると表示されます。

一般に、Vista では次のようになります。

  • c:\users[現在のユーザー]\AppData\Local[会社名][AppName]\version
  • c:\users[現在のユーザー]\AppData\Roaming[会社名][AppName]\version

設定が現在のユーザーUACに関連しているため、このように実行されます。Vista では、アプリケーション全体の設定が構成ファイルに保存されていないこともわかります。

[CompanyName] と [ProductName] は、アセンブリ情報の設定から取得されます。

于 2009-06-28T07:17:23.280 に答える