Повреждение user.config
Кто-нибудь знает причину "случайного" повреждения user.config? Я столкнулся с этой проблемой в приложении WinForms на производственной линии моего клиента. Обнаружил ту же проблему в Интернете и обходной путь, но я не могу понять, потому что это происходит.
3 ответа
Я не уверен, почему это происходит, но ты не один, чувак! Я также пробовал разные вещи, чтобы обойти это. Я написал свои собственные классы обработки конфигурации с пользовательской сериализацией. Все, что я могу вам сказать, это лучше, но теперь все еще там.
Одно наблюдение, которое я недавно сделал, заключается в том, что повреждение происходит, когда компьютер перезагружается (например, из-за обновлений Windows) во время работы моего приложения.
Следующее, что нужно попробовать, это перехватить эти события завершения работы и попытаться не записывать в файл конфигурации в этой ситуации.
Основная идея состоит в том, чтобы предотвратить сохранение настроек при выходе из приложения. для этого вам нужно сохранить все настройки после их изменения с помощью my.setting.save. В приложении есть настройка для автоматического сохранения настроек при выходе из приложения. также вы можете добавить при запуске приложения, чтобы проверить, не повреждены ли настройки, затем удалить файл и перезапустить приложение.
Try
Dim a = My.Settings.Language
Catch ex As System.Configuration.ConfigurationErrorsException
Dim filename As String = TryCast(ex.InnerException, System.Configuration.ConfigurationErrorsException).Filename
System.IO.File.Delete(filename)
MySettings.Default.Reload()
System.Windows.Forms.Application.Restart()
End Try