Dispongo de un fichero .bat genera lo siguiente
Código:
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()path=%path%;C:\ngpcbins\T900\bin SET THOME=C:\ngpcbins\T900 cd "C:\Proyecto" MAKE
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:
¿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 .Netprivate 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); } }
Saludos y gracias.