通过单击一次部署在更新中保留app.config变量

OrE*_*lse 9 deployment clickonce visual-studio-2005

每次为单击一次的应用程序发布新更新时,app.config文件中的变量都将被销毁

<userSettings>
    <app.My.MySettings>
      <setting name="Email" serializeAs="String">
        <value />
      </setting>
      <setting name="UserName" serializeAs="String">
        <value />
      </setting>
    </app.My.MySettings>
  </userSettings>
Run Code Online (Sandbox Code Playgroud)

我怎么能防止这种情况?

有没有办法从以前的应用程序版本中获取变量?

Mit*_*eat 15

您是否选中了"应该检查更新的应用程序"选项?

查看探索持久应用程序设置的秘密(标题为"在程序版本之间维护设置"一节):

对于当前版本中与先前版本中的设置匹配的任何设置,此例程会将它们导入到当前版本的user.config文件中:

在程序的入口点,放置以下代码.

if (Properties.Settings.Default.UpgradeSettings) 
{
   Properties.Settings.Default.Upgrade();
   Properties.Settings.Default.UpgradeSettings = false;
}
Run Code Online (Sandbox Code Playgroud)

请注意,UpgradeSettings是您需要自己添加的布尔用户设置(不是应用程序),并且您希望使用默认值True.

  • 请注意,UpgradeSettings是一个布尔设置,您需要自己添加,并且您希望默认值为True.(这在文章中有解释.) (2认同)