在Visual Studio 2008中调试项目时,我的Settings.settings文件会在构建之间不断重置。有没有办法防止这种情况发生?
感谢。
答案 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()。
答案 1 :(得分:2)
我相信Settings.settings文件是根据当前版本号保存的,基本上是一个“功能”,其中设置不保存在机器上同一程序的不同版本之间。假设您在编译时自动增加版本号(在AssemblyInfo.cs中为1.0。*),每次编译新版本时都会重置设置。
要解决此问题,最好的方法是将您自己的设置文件序列化到Application Data目录。
答案 2 :(得分:0)
我认为您可以在文件属性中设置(在Visual Studio中右键单击“属性”),在构建/运行项目时设置“不复制”选项。可能发生的事情是,在构建项目时,将设置文件复制到调试bin目录,覆盖上一次运行中的设置文件。
答案 3 :(得分:0)
除了其他原因之外,每次调试时,Settings文件都会重置,因为下次调试时,您将能够再次测试整个应用程序。不重置设置可能会导致未检测到的错误。