我有一个非常基本的问题,即为什么所有 .NET Core 应用程序都是控制台应用程序。我进行了一些谷歌搜索,但没有找到任何合适的答案。
最佳答案
这是一个有趣的问题,我来到这里是因为我有同样的想法:为什么我似乎总是在 asp.net 核心应用程序上看到一个控制台?它们现在都是控制台应用程序吗?
但这是海市蜃楼。当您看到控制台窗口时,这只是因为代码使用控制台进行输出。启动应用程序的代码控制输出的去向。例如,相反,输出可以移植到 Windows 事件日志,这是将站点发布到 IIS 时发生的情况。
如果您创建一个默认的 .netcore Web 应用程序,并且查看输出目录,您将看到两个文件:
你的项目.exe 你的项目.dll
如果您双击该 exe,它将启动该网站。您将看到控制台窗口出现,应用程序将开始监听端口 5000。
但现在重命名 YourProject.dll 并尝试运行 exe。它会失败,因为 exe 只是启动代码。您的网站实际上在 .dll 中。
重点是当您启动网络应用程序时看到的控制台窗口来自 exe,而不是 dll。因此控制台窗口与您的网络应用程序无关,它只是在开发环境中启动应用程序的一种便捷方式。您还可以使用 dotnet YourProject.dll 从命令行启动它,它的运行方式与从 YourProject.exe 启动它的运行方式完全相同
如果您阅读@HansPassant 的评论,他说的完全正确,我的回答只是对它的扩展。
关于.net-core - 为什么所有 .NET Core 应用程序都是控制台应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67671795/