我正在尝试从一个 .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;
我得到的输出如下:
Microsoft .NET Core 共享框架宿主
版本:1.1.0 生成:928f77c4bc3f49d892459992fb6e1d5542cb5e86
用法: dotnet [常规选项] [[选项] 应用程序路径]
常规选项: --help 显示 .NET Core 共享框架宿主帮助。 --version 显示 .NET Core 共享框架宿主版本。
选项: --fx-version 要使用来运行应用程序的已安装共享框架的版本。
--additionalprobingpath 包含探测策略和要进行探测的程序集的路径。应用程序路径: 要执行的 .NET Core 托管应用程序、dll 或 exe 文件的路径。
如果您正在调试共享框架宿主,请在环境中将 'COREHOST_TRACE' 设置为 '1'。
要开始开发 .NET Core 应用程序,请从以下网址安装 SDK:http://go.microsoft.com/fwlink/?LinkID=798306&clcid=0x409
所以看起来就像没有指定dll路径参数一样运行命令dotnet。
ProcessStartInfo
是属于哪个命名空间? - Aaron Franke