当前上下文中不存在名称 'zipfile'

The name 'zipfile' does not exist in the current context

我有一个 SSIS 项目,我可以按原样 运行,但是当我尝试编辑它时,出现错误:

The name 'zipfile' does not exist in the current context

没有编辑,它工作正常。

产生错误的代码:

public void Main()
{
    // TODO: Add your code here
    string moduleName = Dts.Variables["User::ModuleName"].Value.ToString();
    string s = Dts.Variables["User::ZipFileLocation"].Value.ToString().TrimEnd('\') + "\" + moduleName + "\" + moduleName + "_" + DateTime.Now.ToString("ddMMyyyy");

    // TODO: Add your code here
    string startPath = s;
    string zipPath = s + ".zip";

    try
    {
        File.Delete(zipPath);
        ZipFile.CreateFromDirectory(startPath, zipPath);
    }
    catch (Exception e)
    {
    }

    Dts.TaskResult = (int)ScriptResults.Success;
}

我该如何解决这个问题?

确保您使用的是 .NET 4.5 版。引用压缩 DLL - 这是路径:

C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.IO.Compression.FileSystem.dll

通过添加 using System.IO.Compression.FileSystem 在 class 中引用它。如果 class 是从另一个 class 继承的,请确保也在父 class 中引用它。 (这是我必须做的才能编译)

要使用 ZipFile class,您必须在项目中添加对 System.IO.Compression.FileSystem 程序集的引用;否则,您将在尝试编译时收到以下错误消息:

The name 'ZipFile' does not exist in the current context.

有关如何在 Visual Studio 中添加对项目的引用的详细信息,请参阅 How to: Add or remove references by using the Reference Manager

仅供更新:-

使用 .Net 4.6.1 版本

添加对 System.IO.Compression.FileSystemusing System.IO.Compression 的引用就足够了。

using System.IO.Compression.FileSystem 给出以下错误。

我发现 ZipFile class 不会只使用 System.IO.Compression 合作,它要求看 Reference to System.IO.Compression.FileSystem.

如果您使用的是 Visual Basic,添加引用相当容易。在解决方案资源管理器中,项目下的选项卡之一称为 References。右键单击那里并 select 添加引用 。向下滚动一点并选中 System.IO.Compression.FileSystem 旁边的复选框。单击 确定 后,您甚至不需要在代码中显式引用 System.IO.Compression.FileSystem

祝你好运(: