我喜欢在我的项目中使用 dll System.IO.Compression.FileSystem.dll
.net framework版本是4.5,os是64,问题是找不到dll。 解决办法是什么?
我喜欢在我的项目中使用 dll System.IO.Compression.FileSystem.dll
.net framework版本是4.5,os是64,问题是找不到dll。 解决办法是什么?
命名空间与 dll 名称(程序集名称)不同。从您链接的 MSDN 页面
命名空间:System.IO.Compression
程序集:System.IO.Compression.FileSystem(在 System.IO.Compression.FileSystem.dll 中)
所以你需要包含的命名空间System.IO.Compression
不是System.IO.Compression.FileSystem
. FileSystem
从您的陈述中删除部分using
,它将解决您的问题。
如果人们因为 OP 说“问题是找不到 dll”而对我投了反对票。我认为 OP 没有使用正确的单词选择,如果问题真的是找不到 DLL,那么原始屏幕截图中没有的程序集名称会有一个感叹号
请看下面的原图
将其与我创建的屏幕截图进行比较,如果确实找不到 DLL,则会显示该屏幕截图,请注意我有原始屏幕截图没有的感叹号。
在 System.IO.Compression 中没有像 FileSystem 这样的类,请查看msdn上的链接
可用的课程有:
- DeflateStream 提供使用 Deflate 算法压缩和解压缩流的方法和属性。
- GZipStream 提供用于压缩和解压缩流的方法和属性。
- ZipArchive 表示 zip 存档格式的压缩文件包。
- ZipArchiveEntry 表示 zip 存档中的压缩文件。
- ZipFile 提供用于创建、提取和打开 zip 档案的静态方法。
- ZipFileExtensions
如果您的目标是使用文件或流压缩,请使用GZipStream类。
但是从 using 语句中删除 FileSystem:
using System.IO.Compression;
无论如何,正如 Joe Enos 所指出的,压缩命名空间中的类已从框架 4.5 中取出客户端配置文件
在来自 msdn 的有关 GZipStream 的版本信息下方:
.NET Framework 支持:4.5、4、3.5、3.0、2.0
.NET Framework 客户端配置文件受以下版本支持:4、3.5 SP1
一个新的 nuget 包即将问世。看一下这个 :)
https://www.nuget.org/packages/System.IO.Compression.ZipFile
添加对 System.IO.Compression.dll 的引用为我解决了这个问题。