We developers like to think of developing software as an exact science, but sometimes, you just need to wipe your source-files to solve some kinds of problems.
For .NET-developers, there are many issues on Stackoverflow which are solved by just deleting your bin
and obj
-folders. For people using Node.js, probably just as many answers contains the step of removing your node_modules
-folder.
Those are some of the reasons why I created dotnet-cleanup
, which is a .NET Core Global Tool for cleaning up solution, project or folder. This was made easy by following Nate McMaster's post on getting started with creating a .NET Core global tool package.
Deleted files and folders are first moved to a temporary folder before deletion, so you can continue working with your projects, while the tool keeps cleaning up in background.
Installation
Download the .NET Core SDK 2.1 or later. Then install the dotnet-cleanup
.NET Global Tool, using the command-line:
dotnet tool install -g dotnet-cleanup
Usage
Usage: cleanup [arguments] [options]
Arguments:
PATH Path to the solution-file, project-file or folder to clean. Defaults to current working directory.
Options:
-p|--paths Defines the paths to clean. Defaults to 'bin', 'obj' and 'node_modules'.
-y|--confirm-cleanup Confirm prompt for file cleanup automatically.
-nd|--no-delete Defines if files should be deleted, after confirmation.
-nm|--no-move Defines if files should be moved before deletion, after confirmation.
-t|--temp-path Directory in which the deleted items should be moved to before being cleaned up. Defaults to system Temp-folder.
-v|--verbosity Sets the verbosity level of the command. Allowed levels are Minimal, Normal, Detailed and Debug.
-?|-h|--help Show help information
The argument PATH
can point to a specific .sln
-file or a project-file (.csproj
, .fsharp
, .vbproj
). If a .sln
-file is specified, all its projects will be cleaned.
If it points to a folder, the folder will be scanned for a single solution-file and then for a single project-file. If multiple files are detected an error will be shown and you need to specify the file.
If not solution or project is found, the folder will be cleaned as a project.
Example
To cleanup a typical web-project, you can specify the paths to be cleaned in the projects like this:
cleanup -p "bin" -p "obj" -p "artifacts" -p "npm_modules"
You can find the source-code on GitHub and the package on Nuget.
You can find a great list of more .NET Core Global Tools on GitHub, maintained by Nate McMaster.