web-dev-qa-db-ja.com

Properties.Settings.Defaultはどこに保存されますか?

私はこれを知っていたと思ったが、今日は間違っていることが証明されている-再び。

VS2008、.NET 3.5およびC#の実行。プロパティ設定タブにデフォルト値でユーザー設定を追加し、次のコードを使用してそれらを読み取りました。

myTextBox.Text = Properties.Settings.Default.MyStringProperty;

次に、ユーザーがオプションダイアログで値を編集した後、次のように保存します。

Properties.Settings.Default.MyStringProperty = myTextBox.Text;
Properties.Settings.Default.Save();

私の質問は、この新しい価値はどこに保存されていますか?実行可能ディレクトリのMyApp.exe.configファイルは更新されず、デフォルト値が含まれています。さらに、私が知る限り、そのディレクトリ内の他のファイルも更新されません!ただし、プログラムが値を読み戻すと、変更された値が取得されるため、どこかに保存されていることがわかります...

これは単なるアカデミックではありません。今朝、値を手動で編集できるようにする必要があり、変化するものが見つからなかったときに困惑しました。

132
DaveN59

Program Filesフォルダーへの読み取りアクセスのみをデフォルトで許可するという新しいバージョンのWindowsポリシーを使用するために(UACで昇格を要求する場合を除き、それは別のトピックです...)、アプリケーションには%userprofile%\appdata\localの下に設定フォルダーがありますユーザー固有の設定については、実行しているWindowsのバージョンに応じて、%userprofile%\Local Settings\Application Data。すべてのユーザーの設定を保存すると、すべてのユーザープロファイルのC:\usersまたはC:\Documents and Settingsの下の対応するフォルダーに配置されます(例:C:\users\public\appdata\local)。

133
jasonh

プログラムでパスを取得できます。

using System.Configuration;  // Add a reference to System.Configuration.dll
...
var path = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal).FilePath;
80
Akbaritabar

私を正しい方向に向けてくれてありがとう。この怪物にあるuser.configを見つけました:c:\ users\USER\AppData\Local\COMPANY\APPLICATION.exe_Url_LOOKSLIKESOMEKINDOFHASH\VERSION\user.config。

アプリケーションのバージョンを更新する必要があり、すべての設定が消えたように見えました。アプリケーションは、新しいバージョンで新しいフォルダーを作成し、デフォルト設定を使用しました。ファイルが保存されている場所を見つけるために永遠に時間がかかりましたが、それは新しいバージョンに設定を取得するための簡単なコピーアンドペーストでした。

6
Jeremy Ehret

documents and Settings \%user%\ Local Settings\Application Data ...... etcに保存されます-ser.configというファイルを検索します

ただし、場所は変更される場合があります。

5
Stan R.

Windowsサービスの1つがWindows Server 2016のローカルシステムとしてログオンしており、C:\ Windows\SysWOW64\config\systemprofile\AppData\Local {your application name}にuser.configがあります。

Cドライブでアプリケーション名を検索し、user.configがどこにあるかを確認するのが最も簡単な方法だと思います

0
EvilDuck

ユーザー固有の設定は、そのアプリケーションのユーザーのアプリケーションデータフォルダーに保存されます。 user.configファイルを探します。

そもそもユーザーは実行可能ディレクトリへの書き込みアクセス権さえ持っていないことが多いので、私はあなたが何を期待したのかわかりません。

0
Joel Coehoorn