Системные вызовы из .NET в моно - PullRequest
4 голосов
/ 28 марта 2009

Я пытаюсь сделать внешний системный вызов, используя моно. Я хотел бы знать, возможно ли подражать чему-то подобному примеру ниже (конечно, я ищу кроссплатформенную поддержку).

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;
            }

** ОБНОВЛЕНИЕ: этот код работает в моно. Первая реализация не сработала из-за несуществующей ссылки на пространство имен System (не знаю, как это произошло), этот блок кода работает, пока используется пространство имен System.Diagnostics.

1 Ответ

2 голосов
/ 28 марта 2009

Я не уверен, что это то, что вы хотели, но посмотрите на пример кода, который я выложил в Контроллере приложений Windows Service , это работает в Mono.

...