使用nuGet包ExcelDataReader时,无法加载文件或程序集ICSharpCode.SharpZipLib
本文关键字:文件 加载 程序集 SharpZipLib ICSharpCode nuGet ExcelDataReader 使用 | 更新日期: 2023-09-27 18:27:15
错误:
无法加载文件或程序集"ICSharpCode.SharpZipLib,版本=0.85.5.452,区域性=中性,PublicKeyToken=1b03e6acf116f73"或其依赖项之一。系统找不到指定的文件。`
堆栈:
[FileNotFoundException:无法加载文件或程序集"ICSharpCode.SharpZipLib,Version=0.85.5.452,Culture=neutral,PublicKeyToken=1b03e6cf1164f73"或其依赖项之一。系统找不到指定的文件。]
Excel.Core.ZipWorker.Extract(流文件流)+0
Excel.ExcelOpenXmlReader.Initialize(流文件流)+78
[Asp.Net Mvc3 C#]
使用NuGet Package ExcelDataReader,我尝试简单地打开保存在文件系统上的.xlsx文件。这是使用的代码:
string filePath = HttpContext.Server.MapPath("~/blank3.xlsx");
FileStream stream = System.IO.File.Open(filePath, FileMode.Open, FileAccess.Read);
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);
以下是nuget套餐的网站:http://exceldatareader.codeplex.com/
什么东西?这应该可以顺利进行。
我遇到了同样的问题;为了解决这个问题,我在他们的codeplex项目中找到了合适的强名称程序集。
已从下载源代码http://exceldatareader.codeplex.com,从他们的LIB目录中获取程序集,并从我的项目中引用它。
编辑2021年5月
看起来引用的链接很快就会消失;按照奥列格下面的指示可能是最好的(也更容易)。
如果您得到的是:
无法加载文件或程序集"ICSharpCode.SharpZipLib,版本=0.86.0.518,区域性=中性,PublicKeyToken=1b03e6cf1164f73"或其依赖项之一。系统找不到指定的文件。
然后,解决方案是从SharpZipLib网站下载最新的(或为您的错误选择正确的版本)ICSharpCode.SharpZipLib.dll
,并将其放在ExcelDataReader的Excel.dll
所在的文件夹中(无需参考)。
因为dll是.net 2.0版本,所以您的项目更高,如果您从nuget软件包管理器安装软件包,它将自动使用运行时程序集绑定,web.config/app.config文件应该如下所示:
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="ICSharpCode.SharpZipLib" publicKeyToken="1b03e6acf1164f73" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-0.85.4.369" newVersion="0.85.4.369" />
</dependentAssembly>
</assemblyBinding>