问题
My question is related to I didn't find "ZipFile" class in the "System.IO.Compression" namespace
But I have referenced the DLL's for my 4.5.1 webforms project:
Properties of my project give me: Target framework: .Net Framework 4.5.1.
and the web.config:
<compilation debug="true" targetFramework="4.5" />
What am I missing?
The solution was to manually reference the assemblies in the web.config But why? Why wasn't the checkbox in the add reference dialog insufficient?
<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>
Taken from this answer to "Installed .Net 4.5 but can't use ZipFile class in Visual C#"
回答1:
I faced same problem because the namespace is not present in References,Please do the following steps.
In my case Without References
After Installing References
Solution
1)Install system.Io.compression from nuget here
System.IO.Compression
2)Install system.Install-Package 40-System.IO.Compression.FileSystem from nuget here.
System.IO.Compression.FileSystem
回答2:
you can update References in Project file directly (Unload Project and Edit this or open .csproj file with notepad and edit)
Before edit must same as:
<Reference Include="System.IO.Compression" />
<Reference Include="System.IO.Compression.FileSystem" />
After your edit:
<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" />
load again your project in Visual Studio and rebuild it. I hope it can help you.
回答3:
using (var zip = new ZipArchive(System.IO.File.OpenRead(zipFileName))) { ... }
来源:https://stackoverflow.com/questions/33802239/cannot-find-ziparchive-in-the-system-io-compression-namespace