title: .NET ApplicationSettingsBase Should I call Upgrade() every time I load?
body: <p>We have application settings derived from <code>ApplicationSettingsBase</code>. When we push a new version of our app we need to call:</p>
  
  <pre><code>  //
    // Summary:
    //     Updates application settings to reflect a more recent installation of the
    //     application.
    public virtual void Upgrade();
  </code></pre>
  
  <p>(from the meta-data)</p>
  
  <p>Now there are some tricky ways to determine if your settings need to be upgraded such as <a href="http://web.archive.org/web/20120618125432/http://cs.rthand.com/blogs/blog_with_righthand/archive/2005/12/09/246.aspx" rel="nofollow noreferrer">this post</a> which would seem to me to only ever upgrade your settings once. Now I could store the current version of my application in the settings and compare whenever I instantiate the settings, if it is different to the current version then I could upgrade. </p>
  
  <p>My question is why not just call <code>Upgrade()</code> every time I instantiate the settings? That way i know I will never be out of date.</p>