我使用.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.
每次运行脚本时都会发生这种情况。所以过了一段时间,有很多程序集加载到进程中,造成内存损失。
现在的问题是:
是否可以卸载组件?