Foros del Web » Programación para mayores de 30 ;) » .NET »

Ejecutar comando MAKE?¿

Estas en el tema de Ejecutar comando MAKE?¿ en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/01/2012, 05:40
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 años, 7 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
  #2 (permalink)  
Antiguo 11/01/2012, 10:18
Avatar de drako_darpan  
Fecha de Ingreso: octubre-2008
Ubicación: Sinaloa
Mensajes: 617
Antigüedad: 15 años, 6 meses
Puntos: 58
Respuesta: Ejecutar comando MAKE?¿

Hola que tal, bueno yo hace tiempo me paso algo similar.

Intenta hacer la aplicacion, pero en modo consola, no en FORM.

Yo ejecute un APPLET y como el resultado que esperaba era en modo consola el FORM no lo considera, no se el motivo , pero hice la misma aplicacion pero en consola y ya me regreso el valor correctamente.

Intenta hacer tu aplicacion en modo consola, espero te sirva.
  #3 (permalink)  
Antiguo 12/01/2012, 03:41
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Ejecutar comando MAKE?¿

Vaya no me había planteado nada de eso. Voy a realizarlo así a ver que tal sale.

Saludos y gracias :D
  #4 (permalink)  
Antiguo 13/01/2012, 02:54
Avatar de KeiDash  
Fecha de Ingreso: septiembre-2005
Mensajes: 114
Antigüedad: 18 años, 7 meses
Puntos: 0
Respuesta: Ejecutar comando MAKE?¿

Pues he hecho el asunto con una aplicación de consola y me sigue dando el mismo problema :(

Etiquetas: comando, net
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:10.