web-dev-qa-db-ja.com

ファイルまたはアセンブリICSharpCode.SharpZipLibを読み込めませんでした... nuGetパッケージExcelDataReaderを使用する場合

エラー:

ファイルまたはアセンブリ 'ICSharpCode.SharpZipLib、Version = 0.85.5.452、Culture = neutral、PublicKeyToken = 1b03e6acf1164f73'またはその依存関係の1つを読み込めませんでした。指定されたファイルが見つかりません。`

スタック:

[FileNotFoundException:ファイルまたはアセンブリ 'ICSharpCode.SharpZipLib、Version = 0.85.5.452、Culture = neutral、PublicKeyToken = 1b03e6acf1164f73'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。]
Excel.Core.ZipWorker.Extract(Stream fileStream)+0
Excel.ExcelOpenXmlReader.Initialize(Stream 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パッケージのWebサイトは次のとおりです。 http://exceldatareader.codeplex.com/

何ができますか?これは問題なく動作するはずです。

16
Travis J

私は同じ問題に遭遇しました。解決するために、私は彼らのcodeplexプロジェクトで適切な厳密名のアセンブリを見つけました。

http://exceldatareader.codeplex.com からソースコードをダウンロードし、LIBディレクトリからアセンブリを取得して、私のプロジェクトから参照しました。

16
denvercoder9

あなたが得ているものは:

ファイルまたはアセンブリ 'ICSharpCode.SharpZipLib、Version = 0.86.0.518、Culture = neutral、PublicKeyToken = 1b03e6acf1164f73'またはその依存関係の1つを読み込めませんでした。システムは、指定されたファイルを見つけることができません。

次に、解決策は 最新 をダウンロードすることです(またはエラーに応じて適切な バージョン を選択します)ICSharpCode.SharpZipLib.dll SharpZipLib website から、ExcelDataReaderのExcel.dllが配置されています(参照する必要はありません)。

3
Oleg Grishko

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

ICSharpCode.SharpZipLibは、厳密な名前のアセンブリです。アセンブリのバージョン番号は完全に一致する必要があります。一致しない場合、ロードに失敗します。アセンブリのバージョンを確認してください。

0
linquize