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.