Standard way of doing this is by creating an installation and setup package which will include your application as well as the .NET framework.
The user will run your setup program and install what is required.
EDIT :
If you do not want to use an Installer you could use Ngen.
The Native Image Generator (Ngen.exe) is a tool that improves the
performance of managed applications. Ngen.exe creates native images,
which are files containing compiled processor-specific machine code,
and installs them into the native image cache on the local computer.
The runtime can use native images from the cache instead using the
just-in-time (JIT) compiler to compile the original assembly.
Unfortunately, you still need the libraries from the .net framework in order to run your program. There's no feature that I know of with the Microsoft .Net framework SDK that allows you to compile all the required files into a single executable
EDIT 2 :
After a bit of searching, this is also worth checking out. It's called Spoon Studio here are It's features. Looks like this is what you were looking for.
Execute .NET, Java and AIR-based applications with no separate
installation steps or runtime versioning conflicts. The Spoon virtual
machine supports all versions of the .NET Framework and Java,
including .NET 4.0, 4.2, and 4.5.
Deliver virtualized applications in standalone EXEs, on intranets with
Spoon Server, or on the web with Spoon.net.
Standalone executable generation packages all virtual machine and
application payload content as a single EXE file that can be deployed
using any standard file delivery mechanism or existing desktop
management infrastructure.