web-dev-qa-db-ja.com

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

WPFアプリケーションでは、ソリューションエクスプローラーでSettings.settingsをクリックし、StringCollectionUserスコープを持つ変数:

alt text

私のapp.configでは、それらがそこに保存されていることがわかります:

<userSettings>
    <TestSettings.Properties.Settings>
        <setting name="Paths" serializeAs="Xml">
            <value>
                <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                    <string>one</string>
                    <string>two</string>
                    <string>three</string>
                    <string>four</string>
                    <string>five</string>
                    <string>six</string>
                    <string>seven</string>
                </ArrayOfString>
            </value>
        </setting>
    </TestSettings.Properties.Settings>
</userSettings>

その後、私は私のアプリケーションを実行し、このコードで:

StringCollection paths = Properties.Settings.Default.Paths;

Properties.Settings.Default.Paths.Add("added in code");
Properties.Settings.Default.Save();

foreach (var path in paths)
{
    System.Console.WriteLine(path);
}

これは私にこれを与えます出力

one
two
three
four
five
six
seven
added in code

Iアプリケーションを再度実行し、この出力が得られます:

one
two
three
four
five
six
seven
added in code
added in code

しかし、私は再びapp.configを見て、まだ元の値を持っています

<userSettings>
    <TestSettings.Properties.Settings>
        <setting name="Paths" serializeAs="Xml">
            <value>
                <ArrayOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
                    xmlns:xsd="http://www.w3.org/2001/XMLSchema">
                    <string>one</string>
                    <string>two</string>
                    <string>three</string>
                    <string>four</string>
                    <string>five</string>
                    <string>six</string>
                    <string>seven</string>
                </ArrayOfString>
            </value>
        </setting>
    </TestSettings.Properties.Settings>
</userSettings>

保存されるアプリケーションによって追加される値はどこですか?

46
Edward Tanguay

ユーザースコープを選択したため、各ユーザープロファイルディレクトリ、より具体的にはuser.configという名前のファイルのユーザープロファイルのAppDataフォルダー内に保存されます。

完全なパスはアプリケーションによって異なります。

移動プロファイルを使用せず、Example.Settings.CustomClassという名前のWindowsフォームアプリケーションを使用するWindows 7では、次のフォルダーが取得されます。

C:\Users\[user]\AppData\Local\Microsoft\Example.Settings.CustomCl_Url_3qoqzcgn1lbyw2zx3oz1o3rsw2anyjsn\1.0.0.0

また、アプリケーションのバージョンを考慮して保存され、App.configに保存されている値が新しいユーザーに使用されるデフォルト値であることにも注意してください。

49
João Angelo

私はWin 10で設定を探していました。他の誰かが知る必要がある場合、それらはMicrosoftのサブフォルダーに保存されません(前の回答を参照)。ここを見てください:

C:\Users\[user]\AppData\Local\Example\Example...\1.0.0.0\
0
Markus