2011-12-19 12 views
3

vbのファイルが壊れたuser.configファイルを検出するためのメカニズムをアプリケーションの起動時に実装しています。vb.net my.Settings.Reload()が動作しない

私は何かを初期化する前に、アプリケーションの開始時にこれを行います。

アクセスしようとしているときにexceptionがスローされた場合は、そのファイルを最後に正常にバックアップされたバックアップに置き換えます。

My.Settings.Reload() 

これは、定義に従って、新しいファイルをリロードする必要があります。

は、我々は良いファイルを持っていることを確認し、物理的に不正なファイルを交換した後、私は、コードを実行します。しかし、それは動作していないアプリケーションは、まだ悪い設定ファイルのためにクラッシュしています。

reload()メソッドとは、新しい設定ファイルを読み込まないことです。

+0

を使用して私の水晶玉は、user.configを置き換えコードにバグがあると言います。ファイルへの適切なパスを見つけることが非常に難しいので、正しいかもしれません。 LocalFileSettingsProviderからそれを取得することはできません。郵便番号。 –

答えて

0

私がそれを実行すると思う唯一の方法は、UIにない新しいスレッドです。

Dim t as new threading.thread(addressof tt) 

sub tt() 
'replace config file and reload 
end sub 

は、それからちょうどt.Start()

+0

これを試してみましたが、動作しませんでした。どうやら起こっているように見えるのは、System.Configurationがエラーをスローすると、現在のインスタンスに対してmy.settings.reload()メソッドを呼び出すことができないということです。私が別のスレッドですべてをフォークして実行したときのイベントですが、私はまだmy.settingsの同じインスタンスを参照していました。私の現在の解決策は、このチェックをapp起動時の最初の操作の1つとして実行することです。もしuser.configが破損している場合は置き換え、現在のアプリケーションのインスタンスを終了して新しいものを開始します。 –

+0

エンドユーザーにとってあまり面倒でない場合は、実行する個別のexeファイルまたはバッチファイルを作成してエラーを修正できます。 – Cody8295

関連する問題