web-dev-qa-db-fra.com

Le nom 'zipfile' n'existe pas dans le contexte actuel

J'ai un projet SSIS que je peux exécuter tel quel, mais lorsque j'essaie de le modifier, j'obtiens une erreur:

Le nom 'zipfile' n'existe pas dans le contexte actuel

Sans édition, cela fonctionne bien.

Le code qui produit l'erreur:

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

Comment puis-je résoudre ça?

13
vignesh

Assurez-vous que vous utilisez .NET version 4.5. Référencez la compression DLL - voici le chemin:

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

Référencez-le dans la classe en ajoutant using System.IO.Compression.FileSystem. Si la classe est héritée d'une autre classe, assurez-vous de la référencer également dans la classe parente. (C'est ce que je dois faire pour le faire compiler)

16
Puneet Vedi

Pour utiliser la classe ZipFile, vous devez ajouter une référence à l’assemblage System.IO.Compression.FileSystem dans votre projet. sinon, vous obtiendrez le message d'erreur suivant lors de la compilation:

Le nom 'ZipFile' n'existe pas dans le contexte actuel.

Pour plus d'informations sur l'ajout d'une référence à votre projet dans Visual Studio, voir Procédure: ajouter ou supprimer des références à l'aide de Reference Manager .

J'ai trouvé que la classe ZipFile ne coopérerait pas uniquement à l'aide de System.IO.Compression, elle a demandé à voir un Référence à System.IO.Compression.FileSystem.

Si vous utilisez Visual Basic, l'ajout d'une référence est assez facile. Dans l'explorateur de solutions, l'un des onglets du projet s'appelle Références . Faites un clic droit dessus et sélectionnez Ajouter une référence . Faites défiler un peu et cochez la case à côté de System.IO.Compression.FileSystem. Une fois que vous avez cliqué surOK, vous ne devriez même pas avoir besoin de référencer explicitement System.IO.Compression.FileSystem dans votre code!

Bonne chance (:

2
Maggie Zirnhelt

Juste pour mise à jour: -

Avec la version .Net 4.6.1

Ajouter une référence à System.IO.Compression.FileSystem et using System.IO.Compression suffit.

using System.IO.Compression.FileSystem donne l'erreur ci-dessous.

 Reference error

1
Ashok