微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 .NET 框架 4.8 中使用 Roslyn 执行的脚本 (~ .csx) 是否在完成后卸载

如何解决在 .NET 框架 4.8 中使用 Roslyn 执行的脚本 (~ .csx) 是否在完成后卸载

关于这个问题的所有内容都与 .NET framework 4.8 或更低版本有关,除了参考文章中包含不同版本 .NET 的混合信息。

我刚刚阅读了这篇关于可卸载性的article,它提出了一个我还没有找到任何答案的问题......

我使用 csharpscript.Run(code,scriptOptions); 将 C# 代码脚本(~.csx 文本,但不在文件中,仅在内存中)直接运行到我自己的应用程序中。有点像 Excel 2003 中的 VBA。代码应该加载到我的主 AppDomain 中,因为我可以访问我的应用程序中的所有内容

article 得知我们无法卸载加载在同一个 AppDomain 中的 .Net framework 4.8 中的程序集。调用 csharpscript.Run 意味着在我的应用程序主 AppDomain 中执行代码,因为我可以从脚本访问我的所有代码。那么,我想知道所有已经编译并运行到我的应用程序中的宏是否都留在内存中?

如果是,是否在每次调用 csharpscript.Run 时将每个脚本添加到运行 AppDomain 中?每次执行脚本时,它是否会增加我的应用程序在内存中的占用空间?

如果没有,编译的脚本代码应该卸载。如果在主 AppDomain 中加载了 .NET Framework 4.8 中的代码,如何卸载它?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。