System.IO.Compression.FileSystem.dll in c# program

2019-06-20 06:42发布

问题:

I' like to use the dll System.IO.Compression.FileSystem.dll in my project

the .net framework version is 4.5 and the os is 64. The problem is that the dll is not found. What is the solution?

回答1:

The namespace is not the same as the dll name (assembly name). from the MSDN page you linked

Namespace: System.IO.Compression
Assembly: System.IO.Compression.FileSystem (in System.IO.Compression.FileSystem.dll)

So the namespace you need to include is System.IO.Compression not System.IO.Compression.FileSystem. Take off the FileSystem part from your using statement and it will solve your problem.


If people are down-voting me because the OP said "The problem is that the dll is not found." I think the OP is not using the correct word choice, if the problem really was that the DLL could not be found there would be a exclamation point by the assembly name which the original screenshot does not have

See the original image below


(click for larger view)

Compare that to my screenshot I created that would show up if the DLL really was not found, note the exclamation point I have that the original screenshot does not.



回答2:

in the System.IO.Compression there's no such class as FileSystem check it out the link on the msdn

the classes available are:

  • DeflateStream Provides methods and properties for compressing and decompressing streams by using the Deflate algorithm.
  • GZipStream Provides methods and properties used to compress and decompress streams.
  • ZipArchive Represents a package of compressed files in the zip archive format.
  • ZipArchiveEntry Represents a compressed file within a zip archive.
  • ZipFile Provides static methods for creating, extracting, and opening zip archives.
  • ZipFileExtensions

if your goal is to use compression of file or stream use the GZipStream class.

However remove the FileSystem from the using statement:

using System.IO.Compression;

Anyway as Joe Enos has pointed out classes from the Compression namespace have been taken out the Client Profile from the framework 4.5

Below the Version Information from the msdn about the GZipStream:

.NET Framework Supported in: 4.5, 4, 3.5, 3.0, 2.0

.NET Framework Client Profile Supported in: 4, 3.5 SP1



回答3:

A new nuget package is coming out. Check this out :)

https://www.nuget.org/packages/System.IO.Compression.ZipFile



回答4:

Adding reference to System.IO.Compression.dll solved this issue for me.



标签: c# .net file dll