データベース内のプリコンパイルされたコードからオンザフライで作成される.NETアセンブリDLLがあります。DLLファイルを作成し、それにデータを入れ、Assembly
クラスとともにロードし、プロセスが終了したときにそのDLLを削除する方法はありますか?
FILE_SHARE_DELETE
私の最初の考えは、フラグを付けて開き、ロードしAssembly.LoadFrom,
て、自動的に削除することでした。
LoadLibraryはFILE_SHARE_DELETE
フラグ付きのファイルを開きますが、DLLがまだメモリにマップされている場合、OSはファイルを削除しません。
したがって、外部の「ターゲットプロセスの終了後にこのファイルを削除する」実行可能ファイルを使用または開始せずにプロセスが終了したときにDLLを削除するにはどうすればよいですかAppDomains
(実行時にロードされる.NET DLLはユーザー入力に依存するため、これを行うには何らかのプロセスが必要になりますコミュニケーション、避けたい)。