Ich versuche, einen externen Systemanruf mit Mono zu machen. Ich würde gerne wissen, ob es möglich ist, etwas wie das Beispiel unten zu emulieren (Natürlich suche ich nach plattformübergreifender Unterstützung).Systemaufrufe von .NET zu Mono
public static int ExecuteExternalApp()
{
int ExitCode = -1;
Process Process = new Process(); ;
//Defining the filename of the app
Process.StartInfo.FileName = "java";
//Assigning the args to the filename
Process.StartInfo.Arguments = @"-jar """ + ConfigurationManager.AppSettings["JarPath"].ToString();
try
{
//Starting the process
Process.Start();
//Waiting for the process to exit
Process.WaitForExit();
//Grabbing the exit code
ExitCode = Process.ExitCode;
//Close the process
Process.Close();
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
return ExitCode;
}
** UPDATE: Dieser Code funktioniert in Mono. Die erste Implementierung funktionierte wegen eines nicht vorhandenen Verweises auf den System-Namespace nicht (keine Ahnung, wie das passiert ist), dieser Code-Block funktioniert, solange der Namespace System.Diagnostics verwendet wird.
Ich konnte den Namespace System.Diagnostics unter den bereitgestellten Paketen nicht finden, um es in erster Linie zu tun. Wie haben Sie darauf hingewiesen? –
Um die Wahrheit zu sagen, weiß ich nicht: Der Code, den ich gepostet habe, funktioniert mit Mono, aber ich habe es in VisualStudio + .NET kompiliert. –
Betrachtet man Monos Dokumente (http://www.go-mono.com/docs/index.aspx?link=N%3ASystem.Diagnostics), sollte es kein Problem geben, System.Diagnostics zu referenzieren –