安装.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; 

我希望这可以帮助别人