15 notes &
Make .Net assemblies easier to debug
Those .Net DLLs you have are compiled into something called byte-code (aka MSIL). This is kind of like a more machine readable version of your code, but it can’t be run directly by your computer.
Instead, there’s a program (referred to as a virtual machine and in .net, it’s the .Net CLR) that compiles this bytecode dll into a native image format (this is called just in time compiling aka JITing).
Why does all of this matter to us? Well, if you’re using reflector & trying to debug some cod ewhere you don’t have any source code, you may find it precompile a non-optimized version of the bytecode dll.
You can do this with NGEN (http://msdn.microsoft.com/en-us/library/6t9t5wcf(v=VS.100).aspx) and by defining these flags in the .ini config file
[.NET Framework Debugging Control] GenerateTrackingInfo=1 AllowOptimize=0