Невозможно найти `ZipArchive` в пространстве имен System.IO.Compression

Мой вопрос связан с тем, что я не нашел " ZipFile " класс в " System.IO.Compression " Пространство имен

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

Но я ссылался на библиотеку DLL для моего проекта веб-форм 4.5.1:

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, но не может использовать класс ZipFile в Visual С#"

Ответ 1

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

В моем случае Без ссылок

Когда ссылки не установлены

После установки ссылок

введите описание изображения здесь Решение

1) Установите system.Io.compression из nuget здесь

System.IO.Compression

2) Установите system.Install-Package 40-System.IO.Compression.FileSystem из nuget здесь.

System.IO.Compression.FileSystem

Ответ 2

вы можете напрямую обновлять ссылки в файле проекта (выгрузить проект и отредактировать это или открыть файл .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 и перестройте его. Надеюсь, это поможет вам.

Ответ 3

using (var zip = new ZipArchive(System.IO.File.OpenRead(zipFileName))) { ... }