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

时间:2009-03-07 23:54:43

标签: deployment visual-studio-2005 clickonce

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

<userSettings>
    <app.My.MySettings>
      <setting name="Email" serializeAs="String">
        <value />
      </setting>
      <setting name="UserName" serializeAs="String">
        <value />
      </setting>
    </app.My.MySettings>
  </userSettings>

我该如何防止这种情况?

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

2 个答案:

答案 0 :(得分:15)

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

查看Exploring Secrets of Persistent Application Settings(标题为“维护程序版本之间的设置”一节):

  

对于当前的任何设置   匹配设置的版本   在以前的版本中,这个例程会   将它们导入当前版本   user.config文件:

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

if (Properties.Settings.Default.UpgradeSettings) 
{
   Properties.Settings.Default.Upgrade();
   Properties.Settings.Default.UpgradeSettings = false;
}

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

答案 1 :(得分:0)

如果您使用用户级设置而不是应用程序级设置,则会在检索到新版本时将其向前复制。 但最安全的做法是将这些数据与ClickOnce更新分开,呃,“体验”。看看这是否有帮助:

http://robindotnet.wordpress.com/2009/08/19/where-do-i-put-my-data-to-keep-it-safe-from-clickonce-updates/