I never understood how can it be that most programs don't ask me to
install .NET, although I know that many companies use C#. Is there any
way to make an exe of a C# program that doesn't need .NET to be
installed? If so, how can I do it?
You (effectively) can't. While C# is a generic language and doesn't
technically require .NET, it does require a host platform that provides the
same functionality. You can read about this in the official C# standard and
other sources. Search for ISO/IEC 23270, "CLI, "CLR", "CLS", etc. For all
intents and purposes however .NET is really the only game in town (on
Windows anyway - you can read about the Mono project and others however). If
an installation program isn't asking you to install it then it either
assumes it's already installed (very good chance these days), will be
installed (manually), or it's specifically checking that it's installed
(note BTW that it's shipped with the latest MSFT OSs but may not be
installed by default - it can be installed using the "control panel"
however). In any case, you can't run your program without it, even if you
find "tricks" that rely on it indirectly. You might find "ngen.exe"
interesting for instance but all this does is JIT-compile your code up
front.