【问题标题】:The name 'ZipFile' does not exist in the current context when including System.IO.Compression [duplicate]包含 System.IO.Compression 时,当前上下文中不存在名称“ZipFile”[重复]
【发布时间】:2017-07-15 20:48:01
【问题描述】:

我目前正在运行 .net 4.5 版并尝试使用它的“新”压缩功能。我包括System.IO.Compression 并尝试运行以下代码:

using System.IO.Compression;
string startPath = @"c:\example\start";
string zipPath = @"c:\example\result.zip";
string extractPath = @"c:\example\extract";

ZipFile.CreateFromDirectory(startPath, zipPath);
ZipFile.ExtractToDirectory(zipPath, extractPath);

我遇到的问题是The name 'ZipFile does not exist in the current context。如果我已经在使用需要它的东西,我不知道为什么它不存在。

【问题讨论】:

  • @Tinwor 不是重复的,我已经在引用命名空间但仍然出现错误。
  • @JoeScotto 您需要引用 assembly - 最有可能。右键单击项目中的“引用”,单击“添加引用”,然后归档System.IO.Compression.FileSystem 程序集。然后就可以使用命名空间了。
  • 您引用了错误的库。这是System.IO.Compression.FileSystem
  • @vcsjones 我没有使用解决方案或项目,我只使用了一个独立的 handler.ashx 文件。
  • 骗子有相同的命名空间/程序集问题。将程序集添加到 ashx 的细节是一个单独的问题,可能值得他们自己提出问题。

标签: c# asp.net .net .net-4.5


【解决方案1】:

您是否尝试将命名空间添加到当前文件?为此,请将其添加到文件的顶部。

 using System.IO.Compression;

【讨论】:

  • 这就是我目前拥有的。
  • 然后看另一个答案。要添加对项目的引用,请右键单击项目下的引用,然后单击添加引用。然后选择左侧的Assemblies,找到System.IO.Compression.FileSystem。选中该框并单击“确定”。
  • 它只是一个独立的 handler.ashx 文件,没有解决方案或项目。
  • 在 Visual Studio 中单击右侧的解决方案资源管理器。这应该展开一个菜单。你没看到里面有什么吗?
  • 所以我要说的是,你今后(不仅仅是为了这件事)制作一个项目会容易得多。它会让你更好地控制正在发生的事情。一个新项目将包含一堆您不需要的东西,但是一旦您完成所有设置,这将是一件简单的事情。也就是说,您可以使用此页面了解如何使用 web.config 文件添加程序集引用。 msdn.microsoft.com/en-us/library/37e2zyhb(v=vs.85).aspxWeb.config 类似于 PHP.ini。
【解决方案2】:

您需要包含对System.IO.Compression.FileSystem 程序集的引用。但是命名空间仍然是System.IO.Compression

详情请见the MSDN documentation

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 2013-10-02
    • 2014-04-22
    相关资源
    最近更新 更多