"interesting, so the loader will have to check for a .NET installation then if one exists load the CLR, if not show a custom warning or do something else, interesting idea, aren't there some limitations to the stub size or something? Or you can just create a whole native app and just embed somehow the managed code/il"
In VS, you create a setup project that installs your managed app. Basically, you are creating an .msi that windows installer can install and will check for and install the framework. So that part is done for you already for the most part. You could create your own loader, but not sure why unless the Setup project did not cover all your bases. IIRC, if you create your project as a ClickOnce app, then you get framework dependency installed also. Another reason you always will have to worry about this (and should create a setup package) is because many times you are targeting newer versions of the framework (i.e. 3.5, 4.0, etc) so older versions already on the system will not help anyway, so you should probably always assume your fx is not installed. Then you always have a nice unit of deployment.