每次为单击一次的应用程序发布新更新时,app.config文件中的变量都会被销毁
<userSettings>
<app.My.MySettings>
<setting name="Email" serializeAs="String">
<value />
</setting>
<setting name="UserName" serializeAs="String">
<value />
</setting>
</app.My.MySettings>
</userSettings>
我该如何防止这种情况?
有没有办法从以前的应用程序版本中获取变量?
答案 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更新分开,呃,“体验”。看看这是否有帮助: