Why can I use the NGen tool to produce pre-jitted code and thus avoid the risk of disassembly and forgery?
Pre-jitted code will not provide protection, as the .Net runtime requires the inclusion of the complete set of metadata and MSIL-code in the assembly before executing it. Moreover your assembly will lose several advantages, such as: platform and processor independence, security of the code and data protected by a strong-name. Ngen- code is more dependent and fragile, as it is necessary to recompile it with every change of the environment, which is why MSIL and metadata are essential.