Build, Rebuild & Clean Solution: The Facts

Why This?

Just out of curiosity, I thought, why Build, Rebuild & Clean Solution in Visual Studio IDE? Earlier, I thought if you use any one of them, i.e. Build & Rebuild, they would do the same thing! But still I  thought of going through a few resources and once I got the differences I was staggered to find that I was wrong. :D

This is a very simple and basic fact, which every developer using VS should be aware of. I wanted to be aware of this before someone questions me on the same. I will be discussing their work and describing each as an Agent.

Discuss Facts!

7
Let's first discuss about Build Solution.

Build Solution

:-
'Ctrl + Shift + B',

The short cut above is to build a solution. Now what does this Build agent do in the background!

 The Build Agent,
1

This agent of the VS IDE does an incremental build. If you build your solution once, with some files changed, then it will build only those files which you have changed, without touching the files that are not even touched by you. :P

Moreover, if you are building the Solution once and then again doing a build, it will not again build the solution actually, as the agent finds no files that are changed!

We see the build result on the output window in the IDE.

Let's see a pictorial difference.

4
As you see in the above image, the dll of the project gets re-generated, as a file was modified under that project. Since my solution has a single project, it creates the dll of that only.

5
In the above image as we hit the Build, the Build is succeeded but shows '0 succeeded' i.e. there were no files modified, for which it did not create any dll.
8

Re-Build Solution

2

This agent is the master of all. This is the combination of Clean & Build.
9This does not check or bother if there are any changed/modified files, it will always do a clean and build the solution or the specific project. This will recompile and regenerate the dlls inside the bin folder.

Clean Solution

3
The clean Madam cleans and removes all the dlls created inside the bin folder. The procedure she follows is simple, just remove the Dlls related to the project or related to the entire solution from the bin folder.

Before Cleaning the bin folder has all the dlls:

10
After the clean when the clean succeeds, all the dlls are removed by the clean agent.

11

When to use what

To be honest, we can use any of them, I prefer a Clean first and then a Build. What do you prefer?
When we

  • Rebuild a Solution with 2-3 projects, then the Re-build agent cleans the project 1 and then builds the project 1. Similarly, it cleans project 2 and builds project 2 and so on.

  • When we clean and then build a solution, then the Clean agent first removes all the dlls for each project and then the build agent generates the project dlls at once.

Thus I have shared a simple tip and now know the facts which might be handy and mandate what we do,  as we are Visual Studio developers!

Read more articles on Visual Studio: