Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Settings.settings File Keeps Getting Reset

When debugging my project in Visual Studio 2008, my Settings.settings file keeps getting reset between builds. Is there a way to prevent this from happening?

Thanks.

like image 269
Lenard Avatar asked Aug 04 '09 17:08

Lenard


2 Answers

Okay, I found out the answer I was really looking for. Basically, you need to call LocalFileSettingsProvider.Upgrade. However, since I will be deploying using ClickOnce, it will do it for you automatically.


Q: Okay, but how do I know when to call Upgrade?

A: Good question. In Clickonce, when you install a new version of your application, ApplicationSettingsBase will detect it and automatically upgrade settings for you at the point settings are loaded. In non-Clickonce cases, there is no automatic upgrade - you have to call Upgrade yourself. Here is one idea for determining when to call Upgrade:

Have a boolean setting called CallUpgrade and give it a default value of true. When your app starts up, you can do something like:

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

This will ensure that Upgrade() is called only the first time the application runs after a new version is deployed.

REF: http://blogs.msdn.com/rprabhu/articles/433979.aspx

like image 96
Lenard Avatar answered Sep 27 '22 16:09

Lenard


I believe Settings.settings files are saved based on the current version number, basically as a "feature" where settings are not saved between differing versions of the same program on a machine. Assuming you're incrementing the version number automatically when compiling (1.0.* in AssemblyInfo.cs), you'll be resetting your settings everytime you compile a new version.

To correct this, the best course would be to serialize your own settings file to the Application Data directory.

like image 40
Will Eddins Avatar answered Sep 27 '22 16:09

Will Eddins