Не удалось загрузить файл или сборку ICSharpCode.SharpZipLib... при использовании пакета NuGet ExcelDataReader

ошибка:

не удалось загрузить файл или сборку ' ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=нейтральный, PublicKeyToken=1b03e6acf1164f73' или одна из его зависимостей. Система не может найти указанный файл.`

стопка:

[FileNotFoundException: не удалось загрузить файл или сборку 'ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=нейтральный, PublicKeyToken=1b03e6acf1164f73' или одна из его зависимостей. Система не удается найти указанный файл.]
Превосходить.Ядро.Зипворкер.Извлечение (поток fileStream) +0
Превосходить.ExcelOpenXmlReader.Инициализация (поток fileStream) +78

[Asp.Net Mvc3 C#]

используя пакет NuGet 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/

что это дает? Это должно сработать без сучка и задоринки.

4 ответов


Я столкнулся с той же проблемой; чтобы решить, я нашел соответствующую сборку строгих имен в их проекте codeplex.

скачал исходный код из http://exceldatareader.codeplex.com, схватил сборку из своего каталога LIB и сослался на нее из моего проекта.


Если то, что вы получаете:

не удалось загрузить файл или сборку ' ICSharpCode.SharpZipLib, версия=0.86.0.518, культура=нейтральных, PublicKeyToken=1b03e6acf1164f73' или один из его зависимостей. Система не может найти указанный файл.

затем решением будет скачать последний (или выберите правильный версия ошибки) ICSharpCode.SharpZipLib.dll из SharpZipLib сайт и просто поместите его в папка, где ExcelDataReader Excel.dll находится (нет необходимости ссылаться на него).


ICSharpCode.SharpZipLib собрание сильного имени. Номер версии сборки должен точно совпадать или иначе он не загружается. Пожалуйста, проверьте версию сборки.


поскольку dll является .net версии 2.0, ваш проект выше, если вы устанавливаете пакет из диспетчера пакетов nuget, он будет автоматически использовать привязку сборки runtime, веб.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>