2012-03-10 9 views
12

Błąd:Nie można załadować pliku lub zestawu ICSharpCode.SharpZipLib ... Przy użyciu pakietu Nuget ExcelDataReader

Could not load file or assembly 'ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=neutral, PublicKeyToken=1b03e6acf1164f73' or one of its dependencies. The system cannot find the file specified.`

Stos:

[FileNotFoundException: Could not load file or assembly 'ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=neutral, PublicKeyToken=1b03e6acf1164f73' or one of its dependencies. The system cannot find the file specified.]
Excel.Core.ZipWorker.Extract(Stream fileStream) +0
Excel.ExcelOpenXmlReader.Initialize(Stream fileStream) +78

[Asp.Net Mvc3 C#]

Używanie Pakiet NuGet ExcelDataReader Próbowałem po prostu otworzyć plik .xlsx zapisany w systemie plików. Oto kod używany:

string filePath = HttpContext.Server.MapPath("~/blank3.xlsx"); 
FileStream stream = System.IO.File.Open(filePath, FileMode.Open, FileAccess.Read); 
IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); 

Oto strona dla pakietu Nuget: http://exceldatareader.codeplex.com/

Co daje? To powinno działać bez żadnych problemów.

Odpowiedz

12

Wpadłem na ten sam problem; do rozwiązania, znalazłem odpowiedni zestaw nazwisk na ich projekcie codeplex.

Pobrano kod źródłowy z http://exceldatareader.codeplex.com, pobrałem zestaw z katalogu LIB i odwołałem się do niego z mojego projektu.

+2

Czy mógłbyś bardziej szczegółowo opisać proces? –

0

ICSharpCode.SharpZipLib jest silnym zbiorem nazw. Numer wersji zespołu musi dokładnie pasować lub w inny sposób nie można go załadować. Sprawdź wersję montażową.

+1

Gdzie znajdę zestaw? Nie jest zawarty w pakiecie ani w moim pliku web.config. –

0

ponieważ dll jest .NET w wersji 2.0, projekt jest wyższa, jeśli zainstalować pakiet z Nuget menadżera pakietów, będzie wiążący montaż auto wykorzystanie wykonawczego, plik web.config/app.config powinny podoba :

<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> 

1

Jeśli otrzymujesz jest:

Could not load file or assembly 'ICSharpCode.SharpZipLib, Version=0.86.0.518, Culture=neutral, PublicKeyToken=1b03e6acf1164f73' or one of its dependencies. The system cannot find the file specified.

Wtedy rozwiązaniem jest, aby pobrać latest (lub wybierz prawidłowy version dla Twojego błędu) ICSharpCode.SharpZipLib.dll z SharpZipLib website i po prostu umieść go w folderze, w którym znajduje się obiekt ExcelDataReader (Excel.dll) (nie ma potrzeby, aby go odwoływać).