从ASP.NET(Framework4.8)调用.NET Core6 DLL遇加载异常求助
.NET Core 6 DLL 在 .NET Framework 4.8 项目中调用的加载异常解决方法
解决方案1:调整DLL的目标框架
将你的.NET Core 6 DLL重新编译,目标框架改为.NET Standard 2.0(.NET Framework 4.8完全兼容该版本)。这样编译出的DLL会自动适配.NET Framework的依赖体系,避免引用高版本的.NET Core专属组件。
- 操作步骤:打开DLL项目属性,找到「目标框架」选项,切换为
.NET Standard 2.0,重新生成项目。
解决方案2:添加程序集绑定重定向
在.NET Framework 4.8项目的web.config中添加绑定重定向,将高版本的System.Runtime映射到.NET Framework兼容的版本:
<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> <!-- 可按需添加其他相关.NET Core组件的绑定重定向,比如System.Threading.Tasks等 --> <dependentAssembly> <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-6.0.0.0" newVersion="4.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>
- 若项目
web.config中无runtime节点,需手动创建。
解决方案3:安装.NET Framework兼容性包
在.NET Framework 4.8的ASP.NET项目中安装Microsoft.NETFramework.Compatibility NuGet包,该包提供了.NET Core与.NET Framework的兼容层,可自动处理多数依赖映射问题:
- Package Manager Console安装命令:
Install-Package Microsoft.NETFramework.Compatibility
- 也可通过NuGet包管理器搜索直接安装。
解决方案4:检查并清理DLL依赖
用dotnet list package命令或ILSpy工具查看你的.NET Core 6 DLL是否依赖了.NET Core专属、无法在.NET Framework中运行的组件。若存在此类依赖,需替换为.NET Standard兼容的替代方案。
内容的提问来源于stack exchange,提问作者Muhammad Usama Alam
相关产品推荐
相关产品推荐

