Невозможно найти `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))) { ... }