起初,我在 app.config 文件中的 appSettings 下存储了一些用户定义的设置。 这些是用户可以在运行时更改的属性。 我遇到的第一个问题是,当我使用 ClickOnce 部署我的应用程序时,它会覆盖 app.config 文件并且用户丢失了他的个人设置。
然后我将属性移动到 settings.settings 文件(= app.config 中的 usersettings 部分),因为我在 Internet 上发现使用 ClickOnce 部署时该部分不会被覆盖。不,它确实.. Settings.Settings 属性是:
- 构建操作 = 内容
- 复制到 = 不复制
那么我怎样才能做到不覆盖我用户的个人设置,无论是在 app.config 文件还是 settings.settings 文件中。还是有其他方法,我做错了吗?
谢谢!
最佳答案
在使用 ClickOnce 部署应用程序的新版本时,此方法会复制先前安装的设置。 因此,用户所做的任何用户定义的设置都将被复制,因此在更新后可用。我对此进行了测试,它对我有用。
public static void UpgradeUserSettings()
{
if (Settings.Default.upgradeRequired)
{
Settings.Default.Upgrade();
Settings.Default.upgradeRequired = false;
Settings.Default.Save();
}
}
关于c# - 不要用 clickonce 覆盖 settings.settings 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14400943/