Ver Mensaje Individual
  #1 (permalink)  
Antiguo 11/01/2012, 05:40
Avatar de KeiDash
KeiDash
 
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 19 años, 3 meses
Puntos: 0
Ejecutar comando MAKE?¿

Hola buenas a todos.

Dispongo de un fichero .bat genera lo siguiente

Código:
path=%path%;C:\ngpcbins\T900\bin
SET THOME=C:\ngpcbins\T900
cd "C:\Proyecto"
MAKE
He estado mirando la clase Process para ejecutar comandos desde .Net. En principio, tengo un método que construye el objeto Process, dandole como parámetro este fichero .bat, y lo ejecuto con Process.Start()

Hasta ahí no hay problema, pero luego cuando compruebo el directorio ("C:\Proyecto") el Make no ha hecho absolutamente nada (tendría que compilar ciertos ficheros y sacar otros como resultado) en cambio, si ejecuto el fichero .bat desde una consola de comandos si lo realiza.

Código:
private Boolean RunCompile(string FileToCompile)
        {
            ProcessStartInfo lProc = new ProcessStartInfo();
            Process lOutput = new Process();

            Process lPProcess = new Process();

            try
            {

                lPProcess.StartInfo.FileName = "C:\env.bat";
                lPProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
                lPProcess.StartInfo.CreateNoWindow = false;
                lPProcess.StartInfo.RedirectStandardError = true;
                lPProcess.StartInfo.RedirectStandardOutput = true;
                lPProcess.StartInfo.UseShellExecute = false;
                lPProcess.Start();

                //lPProcess.BeginOutputReadLine();
                string outReply = lPProcess.StandardOutput.ReadToEnd();

                //lPProcess.BeginErrorReadLine();
                string errReply = lPProcess.StandardError.ReadToEnd();

                lPProcess.WaitForExit();

                if (lPProcess.HasExited)
                {
                    if (outReply.ToLower().IndexOf("BlackThunder") > -1)
                    {
                        lstOutput.Text = "Compilación generada correctamente.";
                    }
                    else
                    {
                        //Mal
                        lstOutput.Text = outReply;
                    }
                }

                return true;
            }
            catch (Exception ex)
            {
                return false;
                throw new Exception(ex.Message);
            }
        }
¿Alguien sabe que puedo estar haciendo mal o que pruebas podría realizar? Me da la sensación de que no puedo lanzar el MAKE desde .Net

Saludos y gracias.

Última edición por KeiDash; 11/01/2012 a las 06:02