如何以编程方式从另一个 .Net 项目启动和停止 .NetCore API 服务器项目;在这种情况下,控制台应用程序?

How can I programmatically start and stop a .NetCore API Server project from another .Net project; in this instance, a console application?

我的 Visual Studio 解决方案中有两个项目;一个是 .NET Framework 控制台应用程序,另一个是 .NETCore API 服务器。

我想要的是能够从控制台启动和停止服务器。

CreateWebHostBuilder(args).Build().Run();

因为这意味着 "add the server as a reference for the console app" 并且由于不兼容而无法工作。

我不确定,从架构上讲,将项目的整个服务器端都放在 "Server.cs class" 中是否是一个好习惯。我想作为一个从主要项目开始的单独项目会更好。


到目前为止,我通过启动两个项目并让服务器等待来自控制台的 Tcpsocket 消息(启动或退出)得到了一个伪结果,但这绝对感觉不对,也不像稳定如我所愿。

有人知道如何进行吗?

好的,所以我在 this answer to another question about launching programaticaly 中找到了一个方法。

基本上我需要在 .dll 中编译我的 API 项目,稍后使用命令

启动它
dotnet myServer.dll