我正在尝试从另一个运行一个.NetCore程序。

        ProcessStartInfo psi = new ProcessStartInfo();
        psi.FileName = "sh";
        psi.Arguments = "-c dotnet /home/myuser/PublishOutput/myprogram.dll";
        psi.UseShellExecute = false;
        psi.RedirectStandardOutput = true;
        psi.RedirectStandardError = true;

        Process proc = new Process
        {
            StartInfo = psi
        };


        proc.Start();

        string error = proc.StandardError.ReadToEnd();

        if (!string.IsNullOrEmpty(error))
            return "error: " + error;

        string output = proc.StandardOutput.ReadToEnd();

        proc.WaitForExit();

        return output;

作为输出,我得到:



因此,我似乎很像没有dll路径参数的运行命令dotnet。

最佳答案

您需要转义-c的参数,以便它是一个参数:

psi.Arguments = "-c \"dotnet /home/myuser/PublishOutput/myprogram.dll\"";

关于c# - 使用参数从.NetCore运行bash命令,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44874439/

10-09 21:52