安装.Net 4.5但不能在Visual C#中使用ZipFile类
我是Visual Studio编程的新手。
我最近将.Net 4.0升级到4.5以便在System.IO.Compression下使用ZipFile类,但是在安装完成后,Visual Studio(我使用2012)仍然无法将ZipFile识别为类名。
我确保.Net 4.5出现在控制面板程序列表中,而我的C#解决方案将.Net Framework 4设置为目标框架。
有人可以帮我解决这个问题吗?
请参阅MSDN上的ZipFile类 。 它显示所需的框架版本是4.5。 修复框架版本后,检查是否已添加对System.IO.Compression.FileSystem.dll
程序集的引用,并向您的类添加了一个使用System.IO.Compression
指令。
您还需要引用System.IO.Compression.FileSystem.dll程序集。
为了进一步澄清以前的答案,以下是手动添加引用的方法:
这些文件可以在C:\ Windows \ Microsoft.NET \ assembly \ GAC_MSIL \中找到,子文件夹也包含版本,文化和PublicKeyToken的必要信息。
您需要将当前项目的目标框架从.Net 4更改为.Net 4.5。
.NET 4.5中的新function
Zip压缩改进以减小压缩文件的大小。 请参见System.IO.Compression命名空间。
添加System.IO.Compression程序集作为项目的参考。 您可能还想引用System.IO.Compression.FileSystem程序集来访问ZipArchive类的三个扩展方法(来自ZipFileExtensions类):CreateEntryFromFile,CreateEntryFromFile和ExtractToDirectory。 这些扩展方法使您能够将条目的内容压缩和解压缩到文件。
样品
const string zipFilePath = @"C:\apps\Sample Pictures.zip"; using (FileStream zipFileToOpen = new FileStream(zipFilePath, FileMode.Open)) using (ZipArchive archive = new ZipArchive(zipFileToOpen, ZipArchiveMode.Read)) { foreach (var zipArchiveEntry in archive.Entries) Console.WriteLine( "FullName of the Zip Archive Entry: {0}", zipArchiveEntry.FullName ); }
参考文献:
http://msdn.microsoft.com/en-us/library/ms171868.aspx
http://www.tugberkugurlu.com/archive/net-4-5-to-support-zip-file-manipulation-out-of-the-box
对于Windows Phone 8.1,使用NuGet将Microsoft Compression包添加到项目中并引用它。
如果你有一个较旧的WP8项目,你可能一直在使用一个不同的软件包,它会与作为WP8.1附带的.NET 4.5的一部分的System.IO.Compression dll产生冲突。 您需要摆脱它并使用与.NET 4.5协调工作的Microsoft Compression。 这就是我到达这里的方式!
在我的情况下,我需要手动删除所有以System.IO.Compression开头的dll引用,然后逐个添加所需的那些( System.IO.Compression.FileSystem等),即使我只写了一个using语句
using System.IO.Compression;
我希望这可以帮助别人