web-dev-qa-db-fra.com

Impossible de trouver «ZipArchive» dans l'espace de noms «System.IO.Compression»

Ma question est liée à je n'ai pas trouvé la classe "ZipFile" dans l'espace de noms "System.IO.Compression"

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

Mais j'ai référencé les DLL de mon projet de formulaires Web 4.5.1:

Screenshot of 'References' tab

Les propriétés de mon projet me donnent: Target framework: .Net Framework 4.5.1. et le web.config:

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

Qu'est-ce que je rate?

La solution était de référencer manuellement les assemblys dans le web.config Mais pourquoi? Pourquoi la case à cocher dans la boîte de dialogue d'ajout de référence n'était-elle pas insuffisante?

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

Tiré de cette réponse à "Installé .Net 4.5 mais ne peut pas utiliser la classe ZipFile dans Visual C #"

18
JP Hellemons

J'ai rencontré le même problème car l'espace de noms n'est pas présent dans les références, veuillez suivre les étapes suivantes.

Dans mon cas, sans références

When References not installed

Après l'installation des références

enter image description here Solution

1) Installez system.Io.compression à partir de nuget ici

System.IO.Compression

2) Installez system.Install-Package 40-System.IO.Compression.FileSystem à partir de nuget ici.

System.IO.Compression.FileSystem

16
user5093161

vous pouvez mettre à jour les références dans le fichier projet directement (décharger le projet et le modifier ou ouvrir le fichier .csproj avec le bloc-notes et le modifier)

Avant la modification doit être identique à:

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

Après votre modification:

<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" />

chargez à nouveau votre projet dans Visual Studio et reconstruisez-le. J'espère que cela peut vous aider.

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