【发布时间】:2019-01-22 01:50:19
【问题描述】:
我正在尝试构建一个控制台应用程序来启动我构建为 .dll 的 .NetCore Web 应用程序
不幸的是,我的应用程序没有收到在 ProcessStartInfo 中输入的参数,但是我的应用程序确实启动了,并且在 Console.WriteLine 方法中出现了意外行为。
此代码在我的 SocketAPI 项目中,它是一个 .NetCore 2.2 WebApplication | API 项目:
public static void Main(string[] args)
{
// Outputs -> Received :
// ?? Why is args.Length empty? Not even 0 or null??
Console.WriteLine(string.Format("Received : ",args.Length));
CreateWebHostBuilder(args).Build().Run();
}
它被我的 ProcessRunner 声明和调用,这是一个保存当前进程的类:
我也指的是这个文档: dotnet command documentation on microsoft.com
其中描述:dotnet [command] [arguments]
此代码在 ProcessRunner 构造函数中
ProcessStartInfo = new ProcessStartInfo
{
FileName = "dotnet",
Arguments = string.Format("BHR.{0}.dll {1}", Name, args),
WorkingDirectory = ".\\",
UseShellExecute = false,
RedirectStandardInput = true,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = true,
};
稍后我会在 ProcessRunner 中调用 Process.Start(); 来启动 Process。
如前所述,我确实得到了输出但没有 Args... 那么为什么我看到“已收到:”但最后什么也没有?
在将 SocketAPI 作为进程启动时,我是否必须启用 SocketAPI 才能接收 args?我从 2 天以来一直在努力解决这个问题,但我完全一无所知......
亲切的问候
【问题讨论】:
-
"Received : "->"Rece{0}ived : " -
@PetSerAl 什么?
-
@PetSerAl 再次查看后,我意识到你想告诉我什么! OC你的回答也是对的!谢谢你的建议! :)
标签: c# .net process .net-core args