我有一个C#程序,其中包含存储在程序项目设置中的各种设置。由于它是命令行程序,因此用户将在user.config文件中更改这些设置。我无法弄清楚如何强制它保存所有默认值。
当我更新程序中的属性时,调用Properties.Settings.Default.Save();
似乎才有用,这会破坏持久设置文件的位置。
如果我跑
Properties.Settings.Default.SomeSetting = "Help";
Properties.Settings.Default.Save();
在配置文件中,我会看到类似
的内容< setting name="SomeSetting" serializeAs="String">
<value>Help</value>
< /setting>
我想要的是,如果配置文件不存在,请创建它并存储所有设置。然后,用户可以根据需要更改它们。
答案 0 :(得分:0)
设置保存在用户AppData
文件夹中的某个位置,专门用于给定进程。例如,当应用程序在调试器下运行时,您获得的设置与独立运行时不同。
我猜想没有简单的方法可以使用这些属性设置在应用程序之间共享设置。这段代码很老(.NET 2.0甚至之前),所以我认为它的设计并不容易定制,因为最近的代码经常出现这种情况。
我认为设置适用于特定应用程序的特定事物,如果需要跨应用程序共享数据,那么您应该管理自己的文件。
通常,可以使用基于XML或JSON的文件,如果数据旨在对用户可见或在用户的子目录下,则数据将存储(默认情况下)在My Documents
的子目录下应用程序数据目录,如果普通用户不应该看到这些文件。