7

私のプログラムには、すべてユーザースコープを持ついくつかの設定が組み込まれています。ただし、プログラムが起動すると、設定を含む AppName.exe.config ファイルのみが作成されます。

後で実行時に設定を保存すると、(以前は存在しなかった) user.config ファイルが AppData/Local/AppName/ の場所に作成されますが、そのファイルには保存された設定のみが含まれます。

なぜこれが起こるのですか?user.config を作成しない、または存在する場合に起動時にそれを使用しないのはなぜですか?

4

1 に答える 1

3

MSDN の Application Settings Architectureから:

  1. アプリケーション スコープの設定は、machine.config ファイルまたは app.exe.config ファイルに格納できます。Machine.config は常に読み取り専用ですが、app.exe.config はセキュリティ上の考慮事項により、ほとんどのアプリケーションで読み取り専用に制限されています。

  2. ユーザー スコープの設定は、app.exe.config ファイルに格納できます。この場合、設定は静的な既定値として扱われます。

  3. デフォルト以外のユーザー スコープ設定は、新しいファイル user.config に保存されます。user は、現在アプリケーションを実行しているユーザーのユーザー名です。DefaultSettingValueAttribute を使用して、ユーザー スコープの設定の既定値を指定できます。アプリケーションの実行中にユーザー スコープの設定が変更されることが多いため、user.config は常に読み取り/書き込み可能です。

あなたが最初に見ているのは、(あなたが呼んだもの)「組み込み設定」が(Microsoftが呼んでいるもの)「静的デフォルト」ユーザースコープ設定として保存され、app.exeに保存されます(2に従って)。

そして、実行時に設定を書き戻すと、それらは「デフォルト以外の」ユーザースコープの設定として扱われ、user.config に書き込まれます (3 に従って)。 .config ファイルが作成されました。

つまり、ユーザー スコープの設定が全員で同じ (デフォルト) である限り、ユーザーごとの user.config ファイルは必要ありません。

于 2013-02-18T14:30:05.673 に答える