2011-09-22 13 views
8

私は、ユーザーがSettings.Upgrade()への呼び出しからクラッシュレポートで私を送って持っていた:私のuser.config設定ファイルはどのように壊れていますか?

 
System.Configuration.ConfigurationErrorsException: Root element is missing. 

私は私に彼user.configファイルを送信するために彼を持って、ファイルには、すべてゼロでした。それは何とか壊れていた。

%localappdata%\ MyAppNameディレクトリをルーティングしてすべてのユーザー設定ファイルを削除してから、アプリケーションを再起動することで、回復する方法が見つかりました。私は、アプリを実行し続けるとさらにConfigurationErrorsExceptionを与えるだろう。

この破損は私が行ったことの結果である可能性がありますか?私は数千人のユーザーの基盤から複数のレポートを持っていましたが、私はそのファイルを直接使いこなしていません。誰かがこのuser.configの破損に遭遇しましたか?

答えて

4

私はこのarticleからちょうどいいアイデアを得ました。

.Netフレームワークのバージョンを確認できますか?使用しているメソッドが変更されている可能性があります。

もう1つこれはarticleです(それはちょっと古いです - 2008)が、破損した設定ファイルをどう扱うかについてのいくつかの指針を示しています。

アプリケーションが現在のユーザーレートに影響しないために発生するメモリの問題でもありますか?

それはまだ私には起こっていないが、それでも興味深いと困惑ジレンマので、それが助けてくれることを願っています。

+0

私はすべてが通常の.NETになっていると思います.2番目の記事では、問題のファイルへの正確なパスを取得することは、一括削除を行うのではなく破損したファイルを選別するための良いトリックです。代わりにそれを使用するように私の扱いを変更します。 – RandomEngy

+1

私はインストールされた数千のアプリで同じ問題が4回発生しました。これは停電時に発生します。ファイルを削除するとアプリは正常に動作しますが、ユーザーの設定は失われます。道徳:マイクロソフトの設定を使用しないでください。代わりにウェブアプリケーションを使用することをお勧めします。 –

+1

フォローアップ:SQLiteを使用して設定を保存するようになりました。これは、この種の破損に対して復元力があります。このような問題はもうありませんでした。 – RandomEngy

1

アプリケーションの複数のインスタンスを実行している場合、設定が破損しているようです。 タイミングの問題があるようですが、比較的簡単に再現する方法は、アプリケーションを起動して終了し、終了時に設定を保存しようとすることです。

関連する問題