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. The 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, the latest builds on MyGet and the package on Nuget.
You can find a great list of more .NET Core Global Tools on GitHub, maintained by Nate McMaster.
Top comments (0)