0

.NET 統合コンパイラを使用してスクリプト ツールを作成しました。

すぐに、実行時にソース ファイルをアセンブリにコンパイルし、アセンブリで定義されたオブジェクトを作成し、オブジェクトのメソッドを開始します。

コードは次のとおりです(大幅に簡略化されています):

CodeDomProvider provider = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();
cp.GenerateExecutable = false;
cp.GenerateInMemory = true;
// ...
CompilerResults res = provider.CompileAssemblyFromSource(cp, source);
// ...
return res.CompiledAssembly;

これは、ツールの実行中に複数回発生する可能性があります。
これまでのところ、うまく機能しています。

問題:
コンパイルされたアセンブリがプロセスに読み込まれ、デバッガーから次のように通知されます。

'ScriptTool.exe' (Managed): Loaded 'v7wyfy7w', No symbols loaded.

これは、スクリプトを「実行」するたびに発生します。そのため、しばらくすると、大量のアセンブリがプロセスに読み込まれ、メモリが不足します。

問題は、アセンブリ
アンロードできるかどうかです。

4

0 に答える 0