Quite simple question, and I really wanna know the reason (the real reason) behind this. Say you want to distibute a .NET app to computers without .NET installed (not even 1.1). Why can’t we just include mscorelib.dll & others with out app?
Is it because CLR must be installed in some way, to gain JIT capabilities for intepreting IL?
I know this is quite meaningless question nowadays since every system has a minimum of .NET 2.0, but I still wonder :=)
Installing the libraries and the CLR also allows for shared assemblies. Do you really want hundreds of copies of the CLR running loose on your machine? I like the fact that I know certain things will be available for my application. Much better than having to worry about… Did I compile for 1.4.5 or 1.4.6 version of the runtime… maybe it was even 1.2.5 (JRE can be a pain)
Also there are many parts of the .Net Framework that are just managed wrappers over unmanaged APIs. As well as tons of other assemblies that you use but are not directly referenced. (see mscoree.tlb and many others)