解决间接引用库版本升级带来的烦恼(.NET)

发布时间:2020-07-16 12:25:02 作者:边城__
来源:网络 阅读:870

某个项目中使用了一个工具集库Toolkit.dll,这个工具集库中封装的数据库访问部分引用了其它数据库组件,比如SQLite的访问组件库System.Data.SQLite。由于在Toolkit.dll生成的时候System.Data.SQLite的最新版本是1.0.82.0,而现在要使用的System.Data.SQLite是1.0.90.0,结果在换了System.Data.SQLite.dll之后,报告了一个错误:


解决间接引用库版本升级带来的烦恼(.NET)


之后在Google上查找解决办法,找到有两个解决办法,一个是通过代码载入DLL,另一个是在App.Config中添加一个重定向程序集版本(Redirecting Assembly Versions)的配置。用代码载入DLL太麻烦,还是改配置文件简单些,需要加入配置内容如下:


<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <dependentAssembly>
                <assemblyIdentity name="System.Data.SQLite" publicKeyToken="db937bc2d44ff139" />
                <bindingRedirect oldVersion="1.0.82.0" newVersion="1.0.90.0" />
            </dependentAssembly>
        </assemblyBinding>
    </runtime>
</configuration>


其中publicKeyToken是从报告的错误中抄的。另外,如果oldVersion不确定的情况下,也可以配置成一个范围,比如:


<bindingRedirect oldVersion="1.0.0.0-2.0.0.0" newVersion="1.0.90.0" />


需要注意的是,在干这个事情之前最好确认新版本的引用库不会造成新的问题,否则还是引用旧库比较稳当。

推荐阅读:
  1. php的引用&
  2. 已添加引用,缺少using指令或程序集的引用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

绑定 重定向程序 版本

上一篇:小白亲身实例:电脑无限重启,进不了BIOS

下一篇:浅析:ListView的动态刷新问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》