Create a standalone exe without the need to install .NET framework

You can't build a C# executable without .NET Framework. Even if some resources indicate that you can, that only works in theory.

But you could use an older version of .NET Framework like .NET 4.0. If this doesn't work for you, you have to choose a language like C++ which doesn't require CLR at all.

Update 2018:

Do not target .NET 2.0 or 3.5. It's not compatible with the 4.x version. However, .NET 4.0 targeted binaries work with .NET Framework 4.0, 4.5, 4.6, 4.7 and so on. So to reach maximum compatibility, compile with .NET 4.0. You will have to accept that some features will not be available, however, your binary will run virtually anywhere.

(2018: By now, .NET 2.0 - 3.5 has much lower distribution than 4.x)


C# now supports this with .NET Native.

Instead of compiling to intermediate language, it will compile to native code and run with statically linked .NET libraries. Therefore, there will be no .Net Runtime requirements for end-users.

https://msdn.microsoft.com/en-us/vstudio/dn642499.aspx

https://msdn.microsoft.com/en-us/library/dn584397(v=vs.110).aspx

Only works for Windows 10


If you want to execute an application that is developed using Net Framework 4, you will need to have installed .Net Framework 4 on client computer.

Your application is compiled in CIL (Common Intermediate Language), so it needs to be interpreted by the framework engine.

It is the same if you want to execute a Java program. You will have to install the Java Machine.

The only way you don't need to install frameworks is programming native applications with C, C++.