.NET Core 3.1插件无法加载依赖项

问题描述

我有一个可移植的ASP.NET Core 3.1 Web API,该API动态加载针对.NET Core 3.1的可移植插件程序集。加载插件程序集时,会将其加载到自己的AssemblyLoadContext中。但是,当使用Activator.CreateInstance在插件程序集中创建类型的实例时,会引发异常,并显示消息Contructor on type x not found。这里的消息是一条红色的鲱鱼,因为真正的错误是由于无法加载某些程序集。

插件程序集引用其他具有自己依赖性的nuget程序包。我用过

<copyLocalLockFileAssemblies>true</copyLocalLockFileAssemblies>

确保所有依赖项都包含在构建输出中。此外,为处理程序集重定向,.csproj中还包括以下内容

    <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
    <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>

无法找到的程序集包括netstandard 2.0.0.0和mscorlib。我可以看到在Web API的上下文中加载了netstandard 2.1.0.0。

我尝试从插件程序集中引用NETStandard.LibraryMicrosoft.NETCore.App软件包。

请问有人可以建议我错过什么,或者可以尝试下吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)