在ASP.Net Core中,dll绑定重定向无效的问题通常是由于项目中引用的NuGet包版本不一致导致的。解决该问题的方法是手动更新项目中的NuGet包引用,或者使用AssemblyLoadContext来进行动态加载。
下面是几种解决方案的代码示例:
在项目的.csproj文件中,可以手动更新NuGet包引用的版本号。找到引起冲突的包引用,修改版本号为相同的版本。
使用AssemblyLoadContext,可以在运行时动态加载特定版本的dll,解决版本冲突的问题。
using System.Runtime.Loader;
AssemblyLoadContext.Default.Resolving += (assemblyLoadContext, assemblyName) =>
{
if (assemblyName.Name == "PackageA")
{
return assemblyLoadContext.LoadFromAssemblyPath("");
}
else if (assemblyName.Name == "PackageB")
{
return assemblyLoadContext.LoadFromAssemblyPath("");
}
return null;
};
在项目的app.config或者web.config文件中,可以使用强制绑定重定向,来指定使用特定版本的dll。
以上是几种解决ASP.Net Core dll绑定重定向无效的方法,可以根据具体情况选择适合的解决方案。