安装了.net 4.5,但不能在Visual c#中使用ZipFile类

本文关键字:ZipFile Visual net 但不能 安装 | 更新日期: 2023-09-27 17:51:04

我是Visual Studio编程的新手。

我最近将。net 4.0升级到4.5,以便在System.IO下使用ZipFile类。压缩,但在安装完成后,Visual Studio(我使用的是2012)仍然不能识别ZipFile作为类名。

我已经确保。net 4.5出现在控制面板程序列表中,我的c#解决方案将。net Framework 4设置为目标框架。

谁能帮我弄清楚这个?

安装了.net 4.5,但不能在Visual c#中使用ZipFile类

参见MSDN上的ZipFile类。它显示所需的框架版本是4.5。一旦框架版本固定,检查您已经添加了对System.IO.Compression.FileSystem.dll程序集的引用,并在您的类中添加了使用System.IO.Compression指令。

您还需要引用system . io . compression . filessystem .dll程序集

为了进一步澄清前面的答案,下面是如何手动将引用添加到Web.config:

<configuration>
  <system.web>
    <compilation targetFramework="4.5">
      <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>
    </compilation>
  </system.web>
</configuration>

或a *.csproj:

<Project ...>
  <ItemGroup>
    <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" />
  </ItemGroup>
</Project>

文件可以在c:' windows ' microsoft中找到. NET'assembly'GAC_MSIL'和子文件夹也包含了版本、文化和PublicKeyToken的必要信息。

您需要将当前项目的目标框架从。net 4更改为。net 4.5。

新特性在。net 4.5

Zip压缩改进,减少压缩文件的大小。参见System.IO.Compression命名空间

添加先。压缩程序集作为对项目的引用。你可能还需要引用System.IO.Compression。文件系统组装访问三个扩展方法(从ZipFileExtensions类)对于ZipArchive类: 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压缩包添加到您的项目中并引用它

如果你有一个旧的WP8项目,你可能已经使用了一个不同的包,这将与System.IO.Compression dll产生冲突,该dll是WP8.1附带的。net 4.5的一部分。你需要摆脱它,使用微软的压缩,它能与。net 4.5和谐地工作。我就是这样来到这里的!

在我的情况下,我需要手动删除所有以System.IO开头的dll引用。压缩,然后逐个添加所需的(System.IO.Compression)。文件系统等),即使我只写了一个using语句

using System.IO.Compression;

我希望这能帮助到一些人