Запустите exe с аргументами из C # - PullRequest
0 голосов
/ 28 ноября 2018

Я отправил много статей перед публикацией этого вопроса.В моем случае мой exe "abc" должен передать имя файла в качестве параметра --run.Если я вызываю этот код из окна запуска Windows

c://path/abc.exe --run filename.json

Это работает, но если я пытаюсь запустить из ProcessStart с помощью

Process p = Process.Start(new ProcessStartInfo(@"c://path/abc.exe")
        {
            Arguments = "--run filename.json",
            WindowStyle = ProcessWindowStyle.Normal,
            CreateNoWindow = false,
            UseShellExecute = false,
            RedirectStandardError = true
        });

Это не работает.Он просто открывает окно на секунду, а затем закрывает его, и на заднем плане тоже ничего не произошло.

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018

Можете ли вы попробовать передать аргументы с двойной кавычкой, например:

Process p = Process.Start(new ProcessStartInfo(@"C://Users/source/repos/ConsoleApp5/bin folder/ConsoleApp5.exe")
        {
            Arguments = "\"--run filename.json\"",
            WindowStyle = ProcessWindowStyle.Normal,
            CreateNoWindow = false,
            UseShellExecute = false,
            RedirectStandardError = true
        });

Глядя на github для Process.cs: здесь , он вызывает CreateProcessWithLogonW функция, которая, кажется, использует пробел в качестве разделителя для передачи аргументов.Я попытался с помощью простого консольного приложения, и я могу получить вывод следующим образом:

- запустить filename.json

0 голосов
/ 28 ноября 2018

Где находится ваш файл filename.json?Вы пытались настроить ProcessStartInfo.WorkingDirectory?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...