public static void Main ()
{
try {
RegisterRemotingChannel ();
WatchProcess (Console.ReadLine ());
var builderEngine = new BuildEngine ();
var bf = new BinaryFormatter ();
ObjRef oref = RemotingServices.Marshal (builderEngine);
var ms = new MemoryStream ();
bf.Serialize (ms, oref);
Console.Error.WriteLine (Convert.ToBase64String (ms.ToArray ()));
if (WaitHandle.WaitAny (new WaitHandle[] { builderEngine.WaitHandle, exitEvent }) == 0) {
// Wait before exiting, so that the remote call that disposed the builder can be completed
Thread.Sleep (400);
}
} catch (Exception ex) {
Console.WriteLine (ex);
}
}