2

因此,当新创建的应用程序域无法加载它需要的程序集时,创建 AppDomains 总是会被欺骗。但是对于 ASP.NET Core 项目,它似乎更难,因为代码被编译到内存中(而不是 Gac'd)。这意味着基于文件位置解析和加载的典型方法将不起作用。

如果我创建一个默认的 ASP.NET Core 网站并将下面的代码添加到控制器的 ctor 中,它会在 AssemblyResolve 上失败。

public MyController(){
    var appDomain = AppDomain.CreateDomain("Test");
    appDomain.AssemblyResolve += (sender, e) => {return null;}
}

我不确定是否有办法注入某种上下文/提供程序,其中包含 ASP 已经创建的 MetadataEmbeddedReferences 列表,然后我可以将该原始程序集加载到我的新 appDomain 中。

有任何想法吗?

4

0 回答 0