在我们的桌面应用程序项目中,我们使用设置变量来存储应用程序的用户设置。此外,对于每个最新版本的应用程序,我们都会升级这些变量以保留用户设置。
通常,这种方法很好,但最近我的一位最终用户报告了一个错误,即Configuration System failed to initialize
。该错误与user.config
文件有关。因此,我们要求用户将他的文件发送给我们。
收到该文件夹后,我们发现它包含3个文件(c3begfjb.newcfg
,c3begfjb.tmp
和user.config
)。 c3begfjb.tmp
是一个空文件,而c3begfjb.newcfg
和user.config
是相同的文件。我们尝试打开这些文件,但user.config
中的数据不是正确的xml,而是其不可读的格式化文件。
你们有没有遇到过这类问题或任何想法如何以及可能创建了这些文件和损坏的user.config
文件。
答案 0 :(得分:1)
try
{
// preloads the settings file and throws an error if the settings file is corrupted
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);
}
catch (ConfigurationErrorsException ex)
{
File.Delete(ex.Filename);
}
答案 1 :(得分:0)
这篇文章可能会有所帮助。
https://www.codeproject.com/Articles/30216/Handling-Corrupt-user-config-Settings
基本上这个过程是检查配置是否没有损坏,如果没有,则重置配置。