I would like to distribute my .NET programs without the .NET framework. Is it possible to compile a .NET program to machine code?
Is it possible to compile .NET IL code to machine code?
Yes, but the .NET Framework does it for you at runtime (default) or at install time (ngen). Among other reasons, this IL -> machine code is done separately on each install machine so it can be optimized for that particular machine.
I would like to distribute my .NET programs without the .NET framework. Is it possible to compile a .NET program to machine code?
No, for all intents and purposes you cannot do this. The 3rd party workarounds may work in some scenarios, but by then I wouldn't really consider it "managed code" or ".NET" anymore.