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

vignesh picture vignesh · Apr 21, 2015 · Viewed 15.1k times · Source

I have an SSIS project that I can run as is, but when I try to edit it, I get an error:

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

Without editing, it works fine.

The code that's producing the error:

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;
}

How can I solve this?

Answer

Puneet Vedi picture Puneet Vedi · Apr 23, 2015

Make sure you are using .NET version 4.5. Reference the Compression DLL - here is the path:

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

Reference it in the class by adding using System.IO.Compression.FileSystem. If the class is inherited from another class, make sure to reference it in the parent class too. (This is what I have to do to make it compile)