When using CodeDom to generate executables (using CodeCompileUnit.CompileAssemblyFromDom for example), you can easily embed your custom application manifest using the CompilerParameters.CompilerOptions string, like so:
CompilerParameters cp = new CompilerParameters();
cp.GenerateExecutable = true;
cp.GenerateInMemory = false;
cp.TreatWarningsAsErrors = false;
cp.OutputAssembly = "RandomFileName.exe";
cp.CompilerOptions = "/optimize+ /debug- /win32manifest:RandomFileName.exe.manifest";
The relevant option being /win32manifest. Make sure you create the manifest before attempting to compile, obviously.
And use the CompileParameters in CompileAssemblyFromDom();
FYI – There are other ways to do this, but they would involve finding and running some command line utilities. This is by far the easiest, and most elegant way I could find.