2011-08-11 16 views
0

私は別のアプリケーションのためだけのアップデーターである.NETアプリケーションを持っています。ただし、UpdaterはSQLiteを使用して、データベースからプロキシ設定を取得し、サーバーから更新をダウンロードします。私はSQLite DLLを更新する必要がありますが、もちろん、 "プロセスはC:\ Program Files \ XXXX \ System.Data.SQLite.dll 'というファイルにアクセスできません。別のプロセスで使用されているためです。"それを使用するアプリケーションからSystem.Data.SQLite.DLLを更新するにはどうすればよいですか?

私はWikipediaを参照してください "SQLiteは、クライアントアプリケーションからアクセスされる別個のプロセスではなく、その一部です。"しかし、それはそうではないようです。

誰にも回避策がありますか?

答えて

0

アプリケーションで使用するライブラリを更新する必要がある場合は、ライブラリをロードするためにレイトバインディングを使用して、要求に応じて割り当てを解除してからファイルを上書きする必要があります。プロセスを実行している間は上書きされません。

0

アップデーターアプリを実行する「メイン」アプリがあると仮定して、メインアプリからプロキシ設定を取得し、コマンドラインのアップデータアプリに渡します。

別のオプション - アップデーターアプリケーションがC:¥Program Files¥XXXX¥Updater¥にある場合、競合に陥ることなく、メインフォルダー内のSQLite DLLのコピーを更新できます。これは理想的ではありませんが、あなたはDLLの2つのコピーで終わり、メインアプリケーションはおそらくUpdaterフォルダのSQLite DLLを更新したいでしょう。

もう1つのオプション - プロキシ設定をSQLiteデータベース以外に移動します。 XML設定ファイルは、そのようなものに対してはうまくいくでしょうし、それをシリアル化/逆シリアル化するライブラリは.NETに組み込まれています。

関連する問題