【发布时间】:2021-07-23 16:37:15
【问题描述】:
我正在尝试迁移到不再支持应用程序域的 .Net 5。
我使用 .Net Framework 中的应用程序域来启动多个 WPF 测试,但它们之间没有交互。
var appDomain = AppDomain.CreateDomain("Friendly name");
并使用 appDomain 来执行应用程序。 在 .Net 5 中,这不再可能。
我查看了AssemblyLoadContext,我找不到任何方法来实现这种隔离。
我使用 MS 测试作为测试框架,我找不到将每个测试隔离到单个进程的方法。
【问题讨论】:
-
Creating a process for each test is an overkill与为了运行测试而创建 整个 AppDomains 相比,不,不是。仅仅因为它比调用AppDomain.CreateDomain更费力并不过分。 -
App 域不是在进程中创建的吗?
-
AppDomain 在 .NET Core/5.0 中不是一个东西,而且很可能永远不会。忘记它们的存在吧。
-
大多数测试框架都可以选择在隔离进程中运行单独的测试/测试类。也许包括你正在使用的测试框架,这样你就可以得到真正的问题的答案
-
如果要隔离,必须新建一个OS进程。除此之外没有什么。
标签: c# .net .net-core applicationdomain