我正在尝试迁移到.Net 5,那里不再支持应用程序域。
我使用.Net Framework中的应用程序域来启动多个WPF测试,而不需要它们相互交互。
var appDomain = AppDomain.CreateDomain("Friendly name");
并使用appDomain来执行应用程序。在.Net 5中,这已不再可能。
我研究了AssemblyLoadContext
,我找不到任何方法来实现这种隔离。
我使用MS测试作为测试框架,我找不到将每个测试隔离到单个过程的方法。
从AppDomain迁移到AssemblyLoadContext也许您仍在应用程序中使用AppDomain。现在,下面的代码显示了如何用AssemblyLoadContext 的适当等效方法替换AppDomain方法
请参阅以下实施参考资料和更多详细信息:
// Create new "context" for loading assemblies:
var appDomain = AppDomain.CreateDomain("MyAppDomain");
var assemblyLoadContext = new MyAssemblyLoadContext(name: "MyAssemblyLoadContext", isCollectible: true);
https://learn.microsoft.com/en-us/dotnet/api/system.runtime.loader.assemblyloadcontext?view=netcore-3.0
https://codetherapist.com/blog/netcore3-plugin-system/