C# user.config损坏问题
在桌面应用程序项目中,我们使用设置变量存储应用程序的用户设置。此外,对于每个最新版本的应用程序,我们都会升级这些变量以保留用户设置 正常情况下,这可以正常工作,但最近我的一位最终用户报告了一个错误,即C# user.config损坏问题,c#,.net,vb.net,C#,.net,Vb.net,在桌面应用程序项目中,我们使用设置变量存储应用程序的用户设置。此外,对于每个最新版本的应用程序,我们都会升级这些变量以保留用户设置 正常情况下,这可以正常工作,但最近我的一位最终用户报告了一个错误,即配置系统未能初始化。该错误与user.config文件有关。因此,我们要求用户向我们发送他的文件 收到文件夹后,我们注意到它包含3个文件(c3begfjb.newcfg,c3begfjb.tmp和user.config)c3begfjb.tmp是一个空文件,而c3begfjb.newcfg和user
配置系统未能初始化
。该错误与user.config
文件有关。因此,我们要求用户向我们发送他的文件
收到文件夹后,我们注意到它包含3个文件(c3begfjb.newcfg
,c3begfjb.tmp
和user.config
)c3begfjb.tmp
是一个空文件,而c3begfjb.newcfg
和user.config
是相同的文件。我们试图打开这些文件,但user.config
中的数据不是正确的xml,而是无法读取的格式化文件
你们有没有遇到过这种问题,或者知道是什么和如何创建了这些文件并损坏了
user.config
文件。本文可能会有所帮助
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);
}
基本上,这个过程是检查配置是否损坏,如果没有损坏,它会重置配置。磁盘坏了,没有什么异常。告诉你的用户修理他的机器。@Maverick-我感觉到你的痛苦。我有一个应用程序经常遇到这个问题。通常用户会告诉我这是在重新启动时发生的,可能是Windows update自动重新启动。如果检测到损坏的设置文件,则这似乎也是删除文件的副本。上面的代码片段就是这样做的。这实际上会在user.config文件实际损坏以外的情况下引发异常。例如,如果应用程序的另一个实例已在user.config上具有文件锁定,则即使user.config未损坏,也会引发ConfigurationErrorsException。在继续删除之前,应该检查内部异常(本例中为IOException)。