2009-05-28 8 views
1

.NET 2の設定機能を使用するWinFormsアプリケーションがありますが、アプリケーションに保存されたユーザースコープの設定値が、設定クラスに格納されている既定値に置き換えられることがあります。私はずっと前に、これを自動インクリメントのビルド番号に帰しているガイダンスをどこかに見つけました。これは本当です。しかし、このガイダンスは次のコードを示唆していましたが、何とか私の設定はまだリセットされ続けています。ユーザースコープのアプリケーション設定は常にデフォルトにリセットされます

私はこれ以上深くこれに入るために、あまりにも多くの他の問題を解決しています。私は質問を通して、誰かが私を助けることができるかどうか、そして誰もがこの問題を抱えていると考えました。

private void Form1_Load(object sender, EventArgs e) 
    { 
     UpgradeSettings(); 
     GetSettings(); 
    } 

    private void UpgradeSettings() 
    { 
     if (Properties.Settings.Default.CallUpgrade) 
     { 
      Properties.Settings.Default.Upgrade(); 
      Properties.Settings.Default.CallUpgrade = false; 
     } 
    } 
+0

Properties.Settings.Default.Save()の呼び出しもありませんか? –

答えて

1

次のように、UpgradeSettingsを変更する必要があります。 CallUpgradeの初期値はtrueでなければなりません(User Settingsで)。

private void Form1_Load(object sender, EventArgs e) 
{ 
    UpgradeSettings(); 
    GetSettings(); 
} 

private void UpgradeSettings() 
{ 
    if (Properties.Settings.Default.CallUpgrade) 
    { 
     Properties.Settings.Default.Upgrade(); 
     Properties.Settings.Default.Reload(); // to activate the settings 
     Properties.Settings.Default.CallUpgrade = false; 
     Properties.Settings.Default.Save();// to save the new value of CallUpgrade    
    } 
} 
0

CallUpgradeのデフォルト値はtrueですか。 Upgrade()を呼び出すと、ビルド番号間で設定を移行する必要があります。

もう1つの方法は、固定ビルド番号を使用することです。必要に応じてAssemblyInfo.csを手動で変更できます。

関連する問題