Unity使用Excel.dll报错ICSharpCode.SharpZipLib.dll版本冲突错误
- 报错
- 解决方案
- 方案1
- 方案2
- 方案3
- 参考链接
 
报错
如题,发现 Excel.dll 要引用 ICSharpCode.SharpZipLib.dll(0.85.5.452) 这个版本,我们在Unity安装目录下找 ICSharpCode.SharpZipLib.dll 要不是(0.84)就是(0.86)的版本。所以我们就很奇怪了,为什么我们使用的都是 ICSharpCode.SharpZipLib.dll ,为什么就不引用了,功能都一样啊。
我就不信邪,所以我就把 Excel.dll 反编译去看了,我这里反编译用的工具是 ILSpy ,这个大家可以上网去下载。反编译如图下。

这个就是问题所在了,我的项目用的是 ICSharpCode.SharpZipLib.dll(0.86) 的Dll。
解决方案
方案1
把Excell.dll反编译成C#然后更改引用引用换成 ICSharpCode.SharpZipLib (相对于的版本),然后重新打包成Excel.dll。
方案2
直接把 Excel.dll 反编译成源码,这次反编译的软件是 Reflector.exe 。

方案3
下载使用所需要版本的DLL:
- 官网:https:///icsharpcode
- 我自己搜集到的版本:
解压后,根据您系统的情况选择X86/X64,X86为32位电脑,X64为64位电脑。
根据软件情况选择文件版本。此步骤比较复杂,如果是Windows的dll文件:
- 版本号以5.0开头的或含有 nt 一般是windows2000的文件。
- 版本号以5.1开头的或含有 xp、xpsp1、xpsp2、xpsp3 信息的一般是windowsXP的文件。
- 版本号以6.0开头的或含有 longhorn、vista 信息的一般是windowsVista的文件。
- 版本号以6.1开头的或含有 win7 信息的一般是windows7的文件。
- 版本号以6.2开头的或含有 win8 信息的一般是windows8的文件。
- 版本号以6.3开头的或含有 win8.1 信息的一般是windows8.1的文件。
- 版本号以10.0开头的或含有 win10 信息的一般是windows10的文件。
如果不是windows的dll文件,则需要灵活查看版本号、描述、网友提供的信息、以及相关dll的版本号去判断。
如果实在无法判断,则把每个版本的dll文件拷贝到对应目录(可以在我们网站上文件详细页面查看到)或 C:\Windows\System (Windows 95/98/Me), C:\WINNT\System32 (Windows NT/2000), C:\Windows\System32 (Windows XP,Vista,7) ,去尝试。 至此如果问题依旧,您可能需要使用regsvr32,方法如下: 1.单击开始,选择运行 2.输入 regsvr32 文件名.dll 并按下确认 之后会弹出注册成功信息。 另外,您还可以使用我们的修复工具进行修复。
 
 
                     
            
        













 
                    

 
                 
                    