ProcessInfo Linux / Windows несовместимость - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь запустить тот же процесс, что и дочерний процесс текущего процесса.Показанный ниже код прекрасно работает под Windows, но не работает в Linux с ошибкой

Не найден исполняемый файл, соответствующий команде "dotnet-MyDll.dll"

var processInfo = new ProcessStartInfo
        {
            FileName = "dotnet",
            Arguments = "MyDll.dll " + id.ToString()
        };

        Console.WriteLine("Starting child process...");
        var process = Process.Start(processInfo);
        return process;

Я также пытался FileName = "dotnet MyDll.dll "+ id.ToString (), но в результате возникает другая ошибка Необработанное исключение: System.ComponentModel.Win32Exception: Нет такого файла или каталога

Я также пытался

    var parentP = Process.GetCurrentProcess();
    string fullPath = parentP.MainModule.FileName;
    var command = fullPath+" "+Assembly.GetEntryAssembly().Location+" "+ id.ToString();
    Console.WriteLine("Command = "+command);
    var processInfo = new ProcessStartInfo
    {
        FileName = command
    };
    var process = Process.Start(processInfo);

Все еще необработанное исключение: System.ComponentModel.Win32Exception: Нет такого файла или каталога

Я также пытался:

var parrentP = Process.GetCurrentProcess();
    string fullPath = parrentP.MainModule.FileName;
    var command = "\"" + fullPath + "\" " ;
    var args = Assembly.GetEntryAssembly().Location + " " + id;
    var processInfo = new ProcessStartInfo
    {
        FileName = command,
        Arguments = args
    };
        var process = Process.Start(processInfo);

Exception No such file or directory
Exception at System.Diagnostics.Process.StartCore(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)

как правильно запустить в настоящий момент снова запускается dllпод Linux с ядром dotnet

...