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