Duplicate of: Debug vs. release in .NET
Why are there 'Debug' and 'Release' modes on build in .NET applications?
What is the major technical difference between them?
Duplicate of: Debug vs. release in .NET
Why are there 'Debug' and 'Release' modes on build in .NET applications?
What is the major technical difference between them?
Differences:
And many others. Release is sensibly faster, but it offers no real debug support. For debugging there is... the debug mode :)
A short answer is that code built in 'Release' mode will be optimised for speed or size and also will have all the information used for debugging removed
The main difference as I understand it is that in Debug Mode the whole symbol information which is used by the debugger is stored along with the program, so that if a developer wants to debug the application before releasing he/she may do so, by attaching to any debugger.
You might've noticed the .pdb files in the debug folder. Also the size of the executable is fairly larger. However in Release mode, the debugger symbol information is omitted assuming that the end user is going to use the application so he must not be provided with the application symbols.
You can think of the symbols as the information provided to the debugger to understand what local variables, what functions, where breakpoints are set and all sorts of information so that it can precisely tell you what part of code is being executed currently.
Yeah right, you can even debug in release mode [:)]. There are elaborate processes to do it.
However, the release build is optimized for speed and performance. Also the Microsoft End user licence agreement states that you cannot deploy your debug files on a client system.