There are several ways to achieve this. First, you must add program.exe to the project. You would do this by right-clicking the project in Visual Studio and choosing Add> Existing Element ... Select program.exe and it will appear in the project. After viewing its properties, you can set "Copy to output directory" to "Always copy", and it will appear in your output directory next to your application.
Another way to approach the problem is to include it as a resource. After adding program.exe to your project, change the Build Action property of this element from Content into Embedded Resource. At run time, you can extract the executable from the command line using Assembly.GetManifestResourceStream and execute it.
private static void ExtractApplication(string destinationPath)
{
string resourceName = "program.exe";
Assembly executingAssembly = Assembly.GetExecutingAssembly();
Stream resourceStream = executingAssembly.GetManifestResourceStream(resourceName);
FileStream outputStream = File.Create(destinationPath);
byte[] buffer = new byte[1024];
int bytesRead = resourceStream.Read(buffer, 0, buffer.Length);
while (bytesRead > 0)
{
outputStream.Write(buffer, 0, bytesRead);
bytesRead = resourceStream.Read(buffer, 0, buffer.Length);
}
outputStream.Close();
resourceStream.Close();
}