Settings.settings文件保持重置

时间:2009-08-04 17:30:23

标签: c# visual-studio-2008

在Visual Studio 2008中调试项目时,我的Settings.settings文件会在构建之间不断重置。有没有办法防止这种情况发生?

感谢。

4 个答案:

答案 0 :(得分:12)

好的,我找到了我真正想要的答案。基本上,您需要调用LocalFileSettingsProvider.Upgrade。但是,由于我将使用ClickOnce进行部署,因此它会自动为您完成。


问:好的,但我怎么知道什么时候打电话给升级?

答:好问题。在Clickonce中,当您安装新版本的应用程序时,ApplicationSettingsBase将检测它并在加载点设置时自动升级设置。在非Clickonce案例中,没有自动升级 - 您必须自己调用升级。以下是确定何时调用升级的一个想法:

有一个名为CallUpgrade的布尔设置,并为其指定默认值true。当您的应用启动时,您可以执行以下操作:

if (Properties.Settings.Value.CallUpgrade)
{
    Properties.Settings.Value.Upgrade();
    Properties.Settings.Value.CallUpgrade = false;
}

这将确保仅在部署新版本后第一次运行应用程序时调用Upgrade()。

参考:http://blogs.msdn.com/rprabhu/articles/433979.aspx

答案 1 :(得分:2)

我相信Settings.settings文件是根据当前版本号保存的,基本上是一个“功能”,其中设置不保存在机器上同一程序的不同版本之间。假设您在编译时自动增加版本号(在AssemblyInfo.cs中为1.0。*),每次编译新版本时都会重置设置。

要解决此问题,最好的方法是将您自己的设置文件序列化到Application Data目录。

答案 2 :(得分:0)

我认为您可以在文件属性中设置(在Visual Studio中右键单击“属性”),在构建/运行项目时设置“不复制”选项。可能发生的事情是,在构建项目时,将设置文件复制到调试bin目录,覆盖上一次运行中的设置文件。

答案 3 :(得分:0)

除了其他原因之外,每次调试时,Settings文件都会重置,因为下次调试时,您将能够再次测试整个应用程序。不重置设置可能会导致未检测到的错误。