• npoi与memcached中的ICSharpCode.SharpZipLib版本冲突的解决方案


    项目中一直使用NPOI与memcached,一直相安无事,但是最近升级了npoi到最新版本,发生了ICSharpCode.SharpZipLib的版本冲突问题.

    因为此前一直使用的是NPOI的1.x的版本,用的SharpZipLib是0.84版本,而升级到最新版本以后,SharpZipLib的版本变成了0.86版本.

    但是memcached的却没有最新版本供使用,而只能使用0.84的版本.

    那么问题就来了,该如何解决同一个dll不同版本的冲突问题呢?

    目前可以在gitbub上获取到最新版本的npoi的源码,so我们把源码down下来重新修改为0.84的版本就可以了啊.

    想法是很好的,但是down下源码编译的时候,却发现源码里缺少文件导致编译不成功.

    so,文的不行,那就只能来武的啦.

    拿出ILDSM反编译出NPOI的il代码,然后直接修改引用为0.84版本.

    {
      .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .zV.4..
      .ver 4:0:0:0
    }
    .assembly extern System.Drawing
    {
      .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A )                         // .?_....:
      .ver 4:0:0:0
    }
    .assembly extern System.Windows.Forms
    {
      .publickeytoken = (B7 7A 5C 56 19 34 E0 89 )                         // .zV.4..
      .ver 4:0:0:0
    } .assembly extern ICSharpCode.SharpZipLib { .publickeytoken = (1B 03 E6 AC F1 16 4F 73 ) // ......Os .ver 0:84:0:0 } .assembly extern mscorlib as mscorlib_6 { .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .zV.4.. .ver 2:0:0:0 } .assembly extern System.Configuration { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) // .?_....: .ver 4:0:0:0 } http://blog.csdn.net/a497785609/article/details/8662295

    然后就很简单啦,因为NPOI是强签名过的文件,我们需要把源码中的签名文件

     npoi.snk拿出,然后通过ilasm反编译为dll即可.

    同样还需要修改的文件为NPOI.OpenXml4Net.dll.

    此处,考虑到大家在项目中同时使用这2个第三方库的会有很多,提供下我已经修改好的dll给大家下载使用.

    下载文件点我

    另外一种解决方案:

    http://blog.csdn.net/lilong_herry/article/details/43059643

  • 相关阅读:
    websocket协议
    LeakCanary 中文使用说明
    编程习惯1
    Spring事务管理(详解+实例)
    微信 JS API 支付教程
    mi面试题
    最锋利的Visual Studio Web开发工具扩展:Web Essentials详解(转)
    .Net 高效开发之不可错过的实用工具
    手机版开发框架集合
    node.js建立简单应用
  • 原文地址:https://www.cnblogs.com/xinzhyu/p/5242899.html
Copyright © 2020-2023  润新知