.net 程序集加载,版本不匹配的解决方法

经常有些时候,A.dll引用的是Microsoft.EntityFrameworkCore.dll version=1.0.0.0 publicKeyToken="adb9793829ddae60" 这样一个程序集,但是我们现在只有Microsoft.EntityFrameworkCore.dll version=1.0.1.0 publicKeyToken="adb9793829ddae60" 这样一个程序集,在web里面,就会报一个错误:

找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)文章地址https://www.yii666.com/article/756024.html网址:yii666.com文章来源地址:https://www.yii666.com/article/756024.html

可以这样解决,利用程序集重定向机制

在web.config这样配置网址:yii666.com<

<?xml version="1.0"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.EntityFrameworkCore" publicKeyToken="adb9793829ddae60" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-1.0.0.0" newVersion="1.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>

方法二

用以下代码,也可以实现忽略dll版本号去加载,视乎这种做法更好,不用每个dll都写config了文章来源地址https://www.yii666.com/article/756024.html

        protected void Application_Start(object sender, EventArgs e)
{
AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;
} private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
var assembly = Assembly.Load(args.Name.Split(',')[].Trim());
return assembly;
}

版权声明:本文内容来源于网络,版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。文本页已经标记具体来源原文地址,请点击原文查看来源网址,站内文章以及资源内容站长不承诺其正确性,如侵犯了您的权益,请联系站长如有侵权请联系站长,将立刻删除

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信图片_20190322181744_03.jpg

微信扫一扫打赏

请作者喝杯咖啡吧~

支付宝扫一扫领取红包,优惠每天领

二维码1

zhifubaohongbao.png

二维码2

zhifubaohongbao2.png