web-dev-qa-db-ja.com

「System.IO.Compression」名前空間に「ZipArchive」が見つかりません

私の質問は に関連しています「System.IO.Compression」名前空間に「ZipFile」クラスが見つかりませんでした

The type or namespace name 'ZipArchive' does not exist in the namespace 'System.IO.Compression'

しかし、私は4.5.1 webformsプロジェクトのDLLを参照しました。

Screenshot of 'References' tab

私のプロジェクトのプロパティは私に与えます:Target framework: .Net Framework 4.5.1.およびweb.config:

<compilation debug="true" targetFramework="4.5" />

何が欠けていますか?

解決策は、web.configのアセンブリを手動で参照することでしたが、なぜですか?参照の追加ダイアログのチェックボックスが不十分だったのはなぜですか?

<assemblies>
    <add Assembly="System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
    <add Assembly="System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />
</assemblies>

この回答 から「インストール済みの.Net 4.5ですが、Visual C#でZipFileクラスを使用できません」から取得

18
JP Hellemons

参照に名前空間が存在しないため、同じ問題に直面しました。次の手順を実行してください。

私の場合、参照なし

When References not installed

参照をインストールした後

enter image description hereソリューション

1)nugetからsystem.Io.compressionをここにインストールします

System.IO.Compression

2)ここでnugetからsystem.Install-Package 40-System.IO.Compression.FileSystemをインストールします。

System.IO.Compression.FileSystem

16
user5093161

プロジェクトファイルの参照を直接更新できます(プロジェクトをアンロードしてこれを編集するか、メモ帳で.csprojファイルを開いて編集します)

変更前編集は以下と同じでなければなりません:

<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />

変更後編集:

<Reference Include="System.IO.Compression, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />
<Reference Include="System.IO.Compression.FileSystem, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL" />

visual Studioにプロジェクトを再度読み込み、再ビルドします。お役に立てれば幸いです。

14
using (var Zip = new ZipArchive(System.IO.File.OpenRead(zipFileName))) { ... }
0
Solarev Sergey