web-dev-qa-db-ja.com

.NETでSettings.settingsファイルを使用する場合、設定は実際にどこに保存されますか?

.NETでSettings.settingsファイルを使用する場合、設定は実際にどこに保存されますか?保存した設定を削除してデフォルトの状態に戻したいのですが、保存されている場所が見つかりません...

93
Adam Haile

選択した設定が「ユーザー」スコープか「アプリケーション」スコープかによって異なります。

ユーザースコープ

ユーザースコープの設定は次の場所に保存されます

C:\ Documents and Settings \ username \ Local Settings\Application Data \ アプリケーション名

実行時にそれらを読み書きできます。

VistaおよびWindows 7の場合、フォルダーは

C:\ Users \ username \ AppData\Local \ アプリケーション名

または

C:\ Users \ username \ AppData\Roaming \ アプリケーション名

適用範囲

アプリケーションスコープの設定はAppName.exe.configに保存され、実行時には読み取り専用です。

96
SolutionYogi

以下は、user.configファイルの場所をプログラムで取得するために使用できるスニペットです。

public static string GetDefaultExeConfigPath(ConfigurationUserLevel userLevel)
{
  try
  {
    var UserConfig = ConfigurationManager.OpenExeConfiguration(userLevel);
    return UserConfig.FilePath;
  }
  catch (ConfigurationException e)
  {
    return e.Filename;
  }
}

ApplicationSettings(すなわち、settings.settings)は、デフォルトでユーザー設定にPerUserRoamingAndLocalを使用します(覚えているように)。

更新:奇妙ですが、ここには間違った答えが多すぎます。ユーザースコープの設定ファイル(user.config)を探している場合、次のフォルダー(Windows XPの場合)にあります。

C:\ Documents and Settings \(username)\ Local Settings\Application Data \(company-name-if-exists)\(app-name).exe_(Url | StrongName)_(hash)\(app-version)\

UrlまたはStrongNameは、アセンブリの厳密な名前をアプリケーションに適用するかどうかによって異なります。

51
arbiter

Webアプリケーションではなくデスクトップについて話していると仮定すると:

プロジェクトに設定を追加すると、VSはプロジェクトディレクトリにapp.configという名前のファイルを作成し、そのファイルに設定を保存します。また、個々の設定への静的アクセサーを提供するSettings.csファイルも構築します。

コンパイル時に、VSは(デフォルトで、これを変更できます)app.configをビルドディレクトリにコピーし、その名前を実行可能ファイルに合わせて変更します(たとえば、実行可能ファイルの名前がfoo.exeの場合、ファイルはfoo.exe.config)という名前を付けます。これは、.NET構成マネージャーが実行時に設定を取得するときに検索する名前です。

VS設定エディターで設定を変更すると、app.configSettings.csの両方が更新されます。 (Settings.csで生成されたコードのプロパティアクセサーを見ると、app.configファイルにある設定のデフォルト値を含む属性でマークされていることがわかります。) app.configファイルを直接編集して設定を変更すると、Settings.csは更新されませんが、app.configがコピーされるため、プログラムを実行すると新しい値が引き続き使用されますコンパイル時にfoo.exe.configに。 (ファイルのプロパティを設定して)これをオフにすると、ビルドディレクトリのfoo.exe.configファイルを直接編集して設定を変更できます。

次に、ユーザーを対象とした設定があります。

アプリケーションスコープの設定は読み取り専用です。プログラムはユーザースコープの設定を変更および保存できるため、各ユーザーが独自の設定を持つことができます。これらの設定はfoo.exe.configファイルには保存されません(少なくともVistaでは、プログラムは昇格なしではProgram Filesのサブディレクトリに書き込むことができないため)。それらはユーザーのアプリケーションデータディレクトリの構成ファイルに保存されます。

そのファイルへのパスは%appdata%\%publisher_name%\%program_name%\%version%\user.configです。 C:\Users\My Name\AppData\Local\My_Company\My_Program.exe\1.0.0\user.config。プログラムに厳密な名前を付けた場合、このパスのプログラム名に厳密な名前が追加されることに注意してください。

17
Robert Rossney

ブラウズしてフォルダー名のハッシュを把握していると、( この回答 を介して)出会いました:

http://blogs.msdn.com/b/rprabhu/archive/2005/06/29/433979.aspx

(編集:ウェイバックマシンリンク: https://web.archive.org/web/20160307233557/http://blogs.msdn.com:80/b/rprabhu/archive/2005/06/29/433979 .aspx

user.configファイルの正確なパスは次のようになります。

<Profile Directory>\<Company Name>\<App Name>_<Evidence Type>_<Evidence Hash>\<Version>\user.config

どこ

<Profile Directory>-移動プロファイルディレクトリまたはローカルディレクトリです。設定はデフォルトでローカルuser.configファイルに保存されます。ローミングuser.configファイルに設定を保存するには、SettingsManageabilityAttributeSettingsManageabilityに設定してRoamingで設定をマークする必要があります。

<Company Name>-通常、AssemblyCompanyAttributeで指定された文字列です(必要に応じて文字列がエスケープされ、切り捨てられます。アセンブリで指定されていない場合、フォールバック手順があります)。

<App Name>-通常、AssemblyProductAttributeで指定された文字列です(会社名と同じ注意事項)。

<Evidence Type>および<Evidence Hash>-適切なアプリドメインとアセンブリの分離を提供するために、アプリドメインの証拠から派生した情報。

<Version>-通常、AssemblyVersionAttributeで指定されたバージョン。これは、並べてデプロイされたアプリの異なるバージョンを分離するために必要です。

ファイル名は常に単に「user.config」です。

12
seeker

えー、Settings.Default.Reset()を使用してデフォルト設定を復元することはできませんか?

3
Kildareflare

ユーザーのホームフォルダー(xpではC:\ documents and settings\user、Windows Vistaではc:\ users\user)のApplication Dataフォルダーにあるアプリケーションの名前のフォルダーにあります。

いくつかの情報があります こちら も。

PS:-実行ボックスで%appdata%でアクセスしてみてください!

2
TheVillageIdiot

すべての設定は、それぞれの.configファイルに保存されます。

.settingsファイルは、一緒に属する一連の設定に厳密に型指定されたクラスを提供するだけですが、実際の設定はアプリケーションのapp.configまたは.configファイルに保存されます。

.settingsファイルを追加すると、まだ設定がない場合はapp.configが自動的に追加されて設定が格納されます。

1
Praveen Angyan

設定ファイルがWebアプリにある場合、web.configファイル(プロジェクトのすぐ下にあります。他のタイプのプロジェクトにある場合、app.configファイル(プロジェクトの下にもあります)にあります) 。

編集

コメントで指摘されているように、設計時のアプリケーション設定は、Webアプリケーション以外のアプリケーションのapp.configファイルにあります。ビルドすると、app.configファイルが出力ディレクトリにコピーされ、yourexename。exe.configという名前が付けられます。実行時には、yourexename.exe.configという名前のファイルのみが読み取られます。

1
JMarsch

2つのファイル:1)app.configまたはweb.configファイル。設定は、テキストエディターでビルド後にカスタマイズできます。 2)settings.designer.csファイル。このファイルには、構成ファイルから設定をロードする自動生成コードがありますが、構成ファイルに特定の設定がない場合のデフォルト値も存在します。

0

既に回答されていますが、設定デザイナーの設定を同期してデフォルト設定に戻すことはできませんか?

0
jrsconfitto