管理されていないアプリケーションから既定の .NET AppDomain をアンロードする方法はありますか?
Visual FoxPro 内から .NET アセンブリを使用するために.NET Extenderというサード パーティ ツールを使用しています。これにより、.NET コントロールをホストし、FoxPro 環境内から .NET クラスとメソッドを使用することもできます。
私が抱えている問題は、Visual FoxPro 内からアプリケーションをデバッグするときに、IDE のメイン vfp9.exe アプリケーション ファイルの下ですべてが実行され、マネージ アセンブリへのハンドルが解放されないように見えることです。したがって、これらの .NET アセンブリに変更を加えて更新したい場合は、VFP IDE を閉じてから再度開く必要があります。そうしないと、ファイルを上書きしようとすると共有違反が発生します。
コントロールが確実に破棄されるようにする方法を調べ始めましたが、Rick Strahl によるこの記事に出くわしました。彼は基本的に、問題は実際にはメインの AppDomain がアンロードされていないことであると説明しています。デフォルトの AppDomain をアンロードする方法に関する情報を調べた結果、これは少なくともマネージ アプリケーションでは不可能ですが、アンマネージ アプリケーションでは可能であるという結論に達しました。私の考えでは、管理されていないアプリケーションが .NET リソースを使用したからといって、AppDomain とランタイムの荷物を持ち歩く必要はありません。