c# - 设置升级什么都不做
问题描述
我有一个 C# 应用程序,它使用多个用户设置来存储其数据。当我增加应用程序的版本号时,这些设置会丢失并重置为默认值。
这就是我实现以下代码的原因
if (Settings.Default.UpgradeRequired)
{
Settings.Default.Upgrade();
Settings.Default.UpgradeRequired = false;
Settings.Default.Save();
}
正如这里建议的那样。
问题是:对 Upgrade() 的调用什么也没做。它不会抛出异常,但也不会加载任何旧设置。之后,每个设置仍然具有其默认值。此外,我的新应用程序版本将其设置存储在旧设置文件夹旁边的新文件夹中。
我拿错了吗?;-)
PS:我检查了一组旧的设置是否以合理的值存储在磁盘上。所以肯定有一些东西可以用于升级()。
解决方案
似乎我找到了解决方案。由于我的程序集不是强命名/签名的,因此每次更新我的应用程序时都会生成一个新的哈希值。因此未找到旧设置,升级无法正常工作。
为了解决这个问题,我使用 .snk 文件签署了我的程序集。这样,哈希现在保持固定,并且升级有效。
推荐阅读
- c# - WPF 日历禁用日期选择
- matlab - MatLab webread没有下载完整的网站页面
- gruntjs - 找不到名为“sourcemap”的选项 - Grunt watch
- tensorflow - 在哪里可以找到使用在 COCO 数据集上训练的 Mobilenet 特征提取器的 fastRCNN / R-FCN 的预训练模型?
- sql - STRING_SPLIT 到多个变量
- laravel - 如何在脚本 laravel Blade 中导入组件 vue
- swift - Swift 4 - XCTAssertThrowsError 失败:没有抛出错误
- javascript - 如何在 .innerHTML 元素中调用多个值
- d3.js - D3 散点图图例重叠
- python - 如何解析只有数字的 JSON