每个新的ClickOnce部署版本都丢失了VB.NET"My.Settings"

Cha*_*adD 4 vb.net settings clickonce winforms

我在VB.NET中使用内置的My.Settings功能来保存应用程序设置.

这非常方便,但我注意到每次发布新版本时,设置都会丢失.

为什么以及如何预防呢?

inv*_*ert 9

您需要手动更新您的应用程序设置,我使用这个简单的方法:

  • 创建一个名为MustUpgrade的布尔设置,用户范围,默认为True.

然后编写一个方法来检查My.Settings是否需要更新,如果是,则调用它的Update()方法.将您的设置标记为已更新,然后保存.在app app中的某个地方调用它.Upgrade()方法会将您的设置更新为新格式,并将现有值迁移过来.

Sub UpgradeMySetings()
    If My.Settings.MustUpgrade Then
        My.Settings.Upgrade()
        My.Settings.MustUpgrade = False
        My.Settings.Save()
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

  • 请记住,每个实例(bin\debug,bin\release,clickonce install)都保留了自己的设置副本.此外,当您重新创建签名时,该应用程序将被视为"不同的应用程序",并且设置不会迁移.签署后,请保留该密钥(注意它们每年到期.) (2认同)