【问题标题】:Settings Upgrade Does Nothing设置升级什么都不做
【发布时间】:2019-02-09 02:04:23
【问题描述】:

我有一个 C# 应用程序,它使用多个用户设置来存储其数据。当我增加应用程序的版本号时,这些设置会丢失并重置为默认值。

这就是我实现以下代码的原因

if (Settings.Default.UpgradeRequired)
{
    Settings.Default.Upgrade();
    Settings.Default.UpgradeRequired = false;
    Settings.Default.Save();
}

按照here的建议。

问题是:对 Upgrade() 的调用什么也没做。它不会抛出异常,但也不会加载任何旧设置。之后,每个设置仍然具有其默认值。 此外,我的新应用程序版本将其设置存储在一个新文件夹中,就在旧设置文件夹旁边。

我是不是拿错了? ;-)

PS:我检查了一组旧的设置以合理的值存储在磁盘上。所以肯定有一些东西可以用于 Upgrade()。

【问题讨论】:

标签: c# .net settings


【解决方案1】:

似乎我找到了解决方案。由于我的程序集不是强命名/签名的,因此每次更新我的应用程序时都会生成一个新的哈希值。因此没有找到旧设置,升级也不起作用。

为了解决这个问题,我使用 .snk 文件对我的程序集进行了签名。这样,哈希现在保持固定,并且升级工作正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-09
    • 2017-11-06
    • 2019-03-08
    • 2016-12-24
    相关资源
    最近更新 更多