Możesz plik .exe dodać do zasobów, ale nie znam sposobu na bezpośrednie i uniwersalne uruchomienie kodu z pliku zasobów.
Ale taki plik możesz bez problemu wypakować:
using(var fs = File.OpenWrite("hello.exe"))
fs.Write(Resources.hello);
A następnie uruchomić:
var ps = new System.Diagnostics.Process();
ps.StartInfo.FileName = "hello.exe";
ps.StartInfo.Arguments = "";
ps.StartInfo.UseShellExecute = false;
ps.StartInfo.CreateNoWindow = false;
ps.Start();
W zależności jak chcesz proces uruchomić, tak ustawiasz "StartInfo".
Sprawdź czy w "Properties" nie masz już Pliku zasobów.
Jak nie masz utworzonego zasobu to możesz stworzyć nowy: Dodaj -> Nowy element -> Plik zasobów.
Następnie wchodzisz do Pliku zasobów (z listy plików) i tam dodajesz nowy plik.
Pamiętaj także o lokalizacji gdzie chcesz taki plik .exe wypakować, gdyż jak zrobisz dokładnie tak jak ci podałem, oraz uruchomisz program główny ale w innej lokalizacji, (np. poprzez terminal jednocześnie znajdując się w folderze innym niż plik wykonalny programu głównego) to plik zostanie wypakowany w folderze w którym się obecnie znajdujesz.