/// <summary>
 /// Release static registry settings.
 /// NOTE: This should be called only by unit tests.
 /// </summary>
 public static void Release()
 {
     if (s_measurementUnitSetting != null)
     {
         s_measurementUnitSetting.Dispose();
     }
     s_measurementUnitSetting = null;
     if (s_disableSplashScreen != null)
     {
         s_disableSplashScreen.Dispose();
     }
     s_disableSplashScreen = null;
 }
 /// <summary/>
 protected virtual void Dispose(bool fDisposing)
 {
     System.Diagnostics.Debug.WriteLineIf(!fDisposing, "****** Missing Dispose() call for " + GetType().Name + ". ****** ");
     if (fDisposing && !IsDisposed)
     {
         // dispose managed and unmanaged objects
         m_firstTimeAppHasBeenRun.Dispose();
         m_showSideBar.Dispose();
         m_showStatusBar.Dispose();
         m_openLastEditedProject.Dispose();
         m_loadingProcessId.Dispose();
         m_numberOfLaunches.Dispose();
         m_numberOfSeriousCrashes.Dispose();
         m_numberOfAnnoyingCrashes.Dispose();
         m_totalAppRuntime.Dispose();
         m_appStartupTime.Dispose();
         m_latestProject.Dispose();
         m_latestServer.Dispose();
     }
     IsDisposed = true;
 }