There are several ways you could accomplish this. First, you should add program.exe to the project. You would do this by right-clicking the project in Visual Studio, and selecting Add > Existing Item... Select program.exe, and it will appear in the project. Viewing its properties, you can set "Copy to Output Directory" to "Copy Always", and it will appear in your output directory beside your application.
Another way to approach the problem is to embed it as a resource. After adding program.exe to your project, change the Build Action property of the item from Content to Embedded Resource. At runtime, you could extract the command-line executable using Assembly.GetManifestResourceStream and execute it.
private static void ExtractApplication(string destinationPath)
{
// The resource name is defined in the properties of the embedded
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();
}