127 votes

Comment nettoyer complètement les dossiers bin et obj dans Visual Studio ?

Si vous faites un clic droit sur un dossier, vous verrez apparaître un élément de menu "Nettoyer". J'ai supposé que cela nettoierait (supprimerait) le répertoire obj et bin. Cependant, pour autant que je puisse voir, cela ne fait rien. Existe-t-il un autre moyen ? (Ne me dites pas d'utiliser l'Explorateur Windows ou cmd.exe). J'aimerais supprimer le répertoire obj et bin afin de pouvoir facilement zipper le tout.

0 votes

S'il est construit par CMake (CMakeLists.txt), il peut aussi y avoir un fichier 'CMakeSettings.json'. Pour moi, il s'agit d'un niveau supérieur à celui du fichier "CMakeSettings.json". vcpkg sous-répertoire d'installation. Ce fichier ne faisait pas partie du .gitignore du projet et était donc source de confusion pour l'équipe de Ruben. git clean ... méthode.

12voto

Stuart Points 1428

Jetez un coup d'œil à la fantastique source ouverte de Ron Jacobs CleanProject Il s'occupe même de la fermeture éclair si vous le souhaitez.

Voici le CodePlex lien

6voto

mkdave99 Points 297

Extension Visual Studio

enter image description here

Cliquez à droite sur Solution - Sélectionnez "Supprimer les dossiers bin et obj".

4voto

fragment Points 36

Vous pouvez facilement trouver et supprimer bin y obj. dans le gestionnaire d'images.

  1. Naviguez jusqu'à votre solution et appuyez sur Alt+F7

  2. Dans le dialogue de paramétrage de la recherche :

    • Tapez "bin,obj" dans le champ "Un masque de fichier ou plusieurs masques de fichier".
    • Option de contrôle "Rechercher des dossiers"
    • Appuyez sur la touche Enter
  3. Une fois la recherche effectuée, basculer la vue sur "Panel .

  4. Sélectionner tous les fichiers (avec Ctrl+A) et supprimer les dossiers (appuyer sur "Shift+Del")

J'espère que cela aidera quelqu'un.

3voto

Christopher Points 5252

Il ne supprime pas les dossiers, mais il supprime les sous-produits de la construction. Y a-t-il une raison pour laquelle vous voulez que la construction actuelle dossiers retiré ?

3voto

eka808 Points 740

Sur la base de la réponse de Joe, j'ai converti le code VB en C# :

/// <summary>
/// Based on code of VSProjCleaner tool (C) 2005 Francesco Balena, Code Archirects
/// </summary>
static class VisualStudioCleaner
{
    public static void Process(string rootDir)
    {
        // Read all the folder names in the specified directory tree
        string[] dirNames = Directory.GetDirectories(rootDir, "*.*", SearchOption.AllDirectories);
        List<string> errorsList = new List<string>();

        // delete any .suo and csproj.user file
        foreach (string dir in dirNames) {
            var files = new List<string>();
            files.AddRange(Directory.GetFiles(dir, "*.suo"));
            files.AddRange(Directory.GetFiles(dir, "*.user"));
            foreach (string fileName in files) {
                try {
                    Console.Write("Deleting {0} ...", fileName);
                    File.Delete(fileName);
                    Console.WriteLine("DONE");
                } catch (Exception ex) {
                    Console.WriteLine();
                    Console.WriteLine(" ERROR: {0}", ex.Message);
                    errorsList.Add(fileName + ": " + ex.Message);
                }
            }
        }

        // Delete all the BIN and OBJ subdirectories
        foreach (string dir in dirNames) {
            string dirName = Path.GetFileName(dir).ToLower();
            if (dirName == "bin" || dirName == "obj") {
                try {
                    Console.Write("Deleting {0} ...", dir);
                    Directory.Delete(dir, true);
                    Console.WriteLine("DONE");
                } catch (Exception ex) {
                    Console.WriteLine();
                    Console.WriteLine(" ERROR: {0}", ex.Message);
                    errorsList.Add(dir + ": " + ex.Message);
                }
            }
        }
        Console.WriteLine(new string('-', 60));
        if (errorsList.Count == 0) {
            Console.WriteLine("All directories and files were removed successfully");
        } else {
            Console.WriteLine("{0} directories or directories couldn't be removed", errorsList.Count);
            Console.WriteLine(new string('-', 60));
            foreach (string msg in errorsList) {
                Console.WriteLine(msg);
            }
        }
    }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X