企業口コミこの質問・回答は、@ITの旧掲示板からインポートされたものです。動的DLLの解放についてこんにちは!VB.NET2005で、EXEから動的にロードしたDLLを解放する方法がわからないため、書き込みさせて頂きました。1EXEを実行(EXEは24h常駐です。)2動的にDLLをロード・実行し、DLLの処理終了(EXEは終了しない。)3DLLのPGを改訂し、実行環境にコピーすると、エラーMSGがでる。「○○.dllをコピーできません。他の人またはプログラムによって使用されています。ファイルを使用している可能性があるプログラムを全て閉じてから、やり直してください。」EXEを24h常駐させ、実行条件によって、ロードするDLLを変更したいと考えています。今後業務要件によってDLLを改訂する可能性があります。Nothing)'実行結果をTraceに出力Trace.WriteLine(objInvoke.ToString)'開放方法?以上です。ご教授の方、よろしくお願いいたします。更新順.NETは、Win32の時のFreelibrary関数(DLLを呼び出しプロセスのアドレス空間から切り離す)のようなものはなく、一旦DLLをロードしたらプロセスを終了するまでメモリに残り続けます。動的な方法を調べると、CreateDomainでAppDomainを作成し、そこにDLLをロードして実行、終了時にUnloadするといった方法となります。時間がかかってしまいました。上書きコピーしましたが、エラーとなってしまいます。事でで、コードをチェックして頂けませんか?よろしくお願いします。hanlde.Unwrap'DLLのメソッド実行obj.test()'ドメインを開放AppDomain.Unload(ad)処理後、解放したDLLファイルをコピーするとエラーになってしまいます。アセンブリがロードされてるんじゃないかと思います。詳しくないので推測です。キャストして使用するようにします。それでいけるはずです。クラスを忘れずに継承させてください。(0)お世話になってます。よこけんさん、返答ありがとうございます!!できました〜☆よこけんさんのほぼアドバイス通りでした。簡単ですが纏めさせて頂きます。コーディングレベルと参照設定内容です。'シリアライズを入れる必要がある。(0)ウォッチこの質問への回答やコメントをメールでお知らせします。質問者は、ベストアンサーを変更できるようになりました。ベストアンサーを変更しても、前回答者のレベルは維持されます。SPAM対策のためのダミーチェックです。表示されていてもチェックしないでください。頂いたご意見への回答は行っておりません。