2015-11-19 17 views
8

La mia domanda è legata alla I didn't find "ZipFile" class in the "System.IO.Compression" namespaceNon riesci a trovare `ZipArchive` nello spazio dei nomi“System.IO.Compression”

enter image description here

ma ho fatto riferimento la DLL per il mio progetto 4.5.1 webforms:

enter image description here

Proprietà del mio progetto mi danno: Target framework: .Net Framework 4.5.1. e web.config:

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

Cosa mi manca?

La soluzione era di fare manualmente riferimento agli assembly nel web.config Ma perché? Perché la finestra di dialogo aggiungi riferimento non era sufficiente?

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

https://stackoverflow.com/a/20099950/169714

+0

Durante la compilazione si riceve un altro messaggio (ad esempio manca l'assemblaggio)? La finestra di output potrebbe essere utile. – Caramiriel

+1

È inoltre necessario un riferimento a System.IO.Compression.FileSystem. Se o hai controllato non è visibile. –

+0

Ho aggiunto il riferimento e ancora mi ha dato il messaggio mancante dell'assembly. L'aggiunta delle due linee nel web.config l'ha riparata. Ma perché?Normalmente è sufficiente la finestra di dialogo Aggiungi riferimento. –

risposta

5

Ho affrontato lo stesso problema, perché lo spazio dei nomi non è presente nei riferimenti, eseguire le seguenti operazioni.

Nel mio caso senza riferimenti

When References not installed

dopo l'installazione di riferimenti

enter image description here Soluzione

1) Installare System.IO.Compression da NuGet qui

System.IO.Compression

2) Installare system.Install-40-System.IO.Compression.FileSystem da NuGet qui.

System.IO.Compression.FileSystem

1

è possibile aggiornare i riferimenti a file di progetto direttamente (Scarica progetto e modificare questo o Csproj file aperto con blocco note e modificare)

Prima di modifica deve stessa:

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

Dopo il la vostra modifica:

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

carica nuovamente il progetto in Visual Studio e lo ricostruisce. Spero possa aiutarti.

+0

Grazie per la risposta, ma l'ho risolto 2 anni fa. Puoi spiegare perché la modifica in csproj lo corregge? –