2009-11-09 58 views
4

我使用VB.NET中的內置My.Settings功能來保存應用程序設置。每個新的ClickOnce部署版本丟失VB.NET「My.Settings」

這非常方便,但我注意到每次發佈新版本時,設置都會丟失。

爲什麼以及如何防止它?

+0

試圖澄清。您正在項目屬性頁的「設置」選項卡上使用內置設置。什麼是您的設置的「範圍」值 - 「應用程序」或「用戶」? – codeConcussion 2009-11-09 20:32:29

+0

嗯。我認爲(並且仍然懷疑)這些設置在用戶範圍內。我怎麼知道? – ChadD 2009-11-09 22:10:14

+0

我找到了。是的,它在用戶範圍內。 – ChadD 2009-11-09 22:12:14

回答

9

您需要手動更新您的應用程序設置,我用這個簡單的方法:

  • 創建默認調用MustUpgrade一個布爾值設置,用戶範圍,爲True。

然後編寫一個方法來檢查My.Settings是否需要更新,如果是,則調用它的Update()方法。將您的設置標記爲已更新,然後保存。在您的應用程序加載中調用此地址。 Upgrade()方法會將您的設置更新爲新格式,並將現有值遷移。

Sub UpgradeMySetings() 
    If My.Settings.MustUpgrade Then 
     My.Settings.Upgrade() 
     My.Settings.MustUpgrade = False 
     My.Settings.Save() 
    End If 
End Sub 
+0

有趣的...你如何設置屬性設置的默認值?應用程序屬性對話框的設置選項卡似乎不支持它。我想知道它是否會對您[無條件等級...]造成危害... – ChadD 2009-11-10 20:06:26

+0

在您的項目屬性中,「設置」選項卡顯示一個網格,您可以在其中定義應用程序設置。最後一列(值)是默認值。在此單元格中輸入「True」。相同的2005和2008年,更多信息在http://msdn.microsoft.com/en-us/library/25zf0ze8.aspx – invert 2009-11-11 08:43:27

+0

啊,當然。虛/盲我。 – ChadD 2009-11-11 14:13:06