Skip to main content

Prerequisites

To build Bulk Crap Uninstaller from source, you’ll need to set up your development environment with the required tools and dependencies.

Required Software

Visual Studio

Visual Studio 2019 or 2022 (Community edition works fine)

.NET SDK

.NET 8 SDK (included with Visual Studio)

Visual Studio Workloads

You need to install the following workloads in Visual Studio:
1

.NET desktop development

This workload provides the core .NET desktop development tools required for building the C# projects.
2

Desktop development with C++

Required for building the BCU-launcher native C++ component.
3

Class Designer (Optional)

Install the Class Designer component if you wish to view or edit the included class diagrams.

Getting the Source Code

Clone the repository from GitHub:
git clone https://github.com/Klocman/Bulk-Crap-Uninstaller.git
cd Bulk-Crap-Uninstaller

Building with Visual Studio

1

Open the Solution

Navigate to the source directory and open BulkCrapUninstaller.sln in Visual Studio.
source/BulkCrapUninstaller.sln
2

Restore NuGet Packages

Visual Studio should automatically restore NuGet packages when you open the solution. If not, right-click the solution in Solution Explorer and select “Restore NuGet Packages”.
3

Select Build Configuration

Choose your build configuration:
  • Debug - For development with debugging symbols
  • Release - For optimized production builds
And select the platform:
  • Any CPU - Platform-agnostic build
  • x64 - 64-bit only
  • x86 - 32-bit only
  • ARM64 - ARM64 architecture
4

Build the Solution

Build the entire solution:
  • Press Ctrl+Shift+B or
  • Select Build > Build Solution from the menu
If the compile fails the first time, try Build > Rebuild Solution. The first build occasionally has dependency resolution issues that a rebuild fixes.

Build Output

After a successful build, the compiled binaries will be located in:
source/BulkCrapUninstaller/bin/[Configuration]/[Platform]/
For example:
  • source/BulkCrapUninstaller/bin/Debug/net8.0-windows/
  • source/BulkCrapUninstaller/bin/Release/net8.0-windows/

Solution Structure

The solution contains multiple projects:

Main Projects

  • BulkCrapUninstaller - GUI application
  • BCU-console - Console application
  • BCU-launcher - Native launcher

Libraries

  • UninstallTools - Core library
  • KlocTools - Utility library
  • ObjectListView - UI controls

Helpers

  • SteamHelper
  • WinUpdateHelper
  • StoreAppHelper
  • OculusHelper
  • ScriptHelper

Support

  • UninstallerAutomatizer
  • UniversalUninstaller
  • SimpleTreeMap
  • And more…
All projects will be built as part of the solution build process.

Building for Release

To create a release build suitable for distribution:
1

Run the Publish Script

The repository includes a publish.bat script that creates optimized release builds:
publish.bat
This script is located in the root of the repository (parent directory of source).
2

Build the Installer (Optional)

To create the installer package, you’ll need InnoSetup v6.4 or later.After running publish.bat, use InnoSetup to compile the installer script (if present in the repository).

Running Tests

The solution includes a test project: BulkCrapUninstallerTests
Some tests require:
  • Running as 64-bit process
  • Specific applications to be installed on the system
  • Administrator privileges
To run tests:
  1. Open Test Explorer: Test > Test Explorer
  2. Click Run All or select specific tests

Common Build Issues

Try Build > Rebuild Solution. The dependency chain is complex, and a rebuild often resolves ordering issues.
If you get errors building BCU-launcher, ensure you have the “Desktop development with C++” workload installed in Visual Studio.
Make sure you have .NET 8 SDK installed. You can check by running:
dotnet --list-sdks
Try:
  1. Delete the .vs folder in the solution directory
  2. Delete bin and obj folders in all project directories
  3. Restart Visual Studio and rebuild

Development Tips

  • Use Debug configuration for development with full debugging support
  • The AnyCPU platform is recommended for general development
  • Some features may behave differently between 32-bit and 64-bit builds
  • Test on multiple platforms if making changes to platform-specific code

Next Steps

Contributing

Learn how to contribute your changes back to the project

Architecture

Understand the codebase structure

Build docs developers (and LLMs) love