2012-03-10 11 views
12

Errore:Impossibile caricare il file o il montaggio ICSharpCode.SharpZipLib ... Quando si utilizza il pacchetto 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.`

Stack:

[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#]

Utilizzando il pacchetto NuGet ExcelDataReader Ho cercato semplicemente di aprire un file .xlsx salvato sul filesystem. Qui è il codice utilizzato:

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

Ecco il sito per il pacchetto NuGet: http://exceldatareader.codeplex.com/

Che cosa dà? Questo dovrebbe funzionare senza intoppi.

risposta

12

Mi sono imbattuto nello stesso problema; per risolvere, ho trovato l'assembly nome-strong appropriato sul loro progetto di codeplex.

Ha scaricato il codice sorgente da http://exceldatareader.codeplex.com, ha prelevato l'assembly dalla loro directory LIB e l'ha fatto riferimento dal mio progetto.

+2

Puoi essere un po 'più esplicito con il tuo processo, per favore? –

0

ICSharpCode.SharpZipLib è un assembly valido. Il numero di versione dell'assembly deve corrispondere esattamente o altrimenti non riesce a caricare. Si prega di verificare la versione di assemblaggio.

+1

Dove trovo l'assemblaggio? Non è incluso come alcun pacchetto o nel mio file web.config. –

0

perché la dll è .net versione 2.0, il progetto è più alto, se si installa il pacchetto dal gestore di pacchetti NuGet, sarà vincolante assemblaggio automatico l'utilizzo di runtime, il file web.config/app.config dovrebbe piace questo :

<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

Se ciò che si sta ottenendo è:

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.

Allora la soluzione è quella di scaricare latest (o selezionare il valore corretto version per il proprio errore) ICSharpCode.SharpZipLib.dll da SharpZipLib website e posizionarlo nella cartella in cui si trova il Excel.dll di ExcelDataReader (non è necessario fare riferimento a tale riferimento).