.net core 为什么所有.NET核心应用程序都是控制台应用程序?

.net core 为什么所有.NET核心应用程序都是控制台应用程序?,.net-core,.net Core,关于为什么所有.NET核心应用程序都是控制台应用程序,我有一个非常基本的问题。我做了一些谷歌搜索,但没有找到任何合适的答案。.NETCore提供的不仅仅是开箱即用的控制台应用程序,它从3.x版开始就支持WPF和WinForms。在下面的Microsoft文档链接中,您可以看到列出了.NET 5.0(即.NET Core)。如果您使用的是Visual Studio,那么您可以在“.NET”和“.NET Framework”之间进行选择(前者是.NET核心,以后会提到它),后者不会有超过4.8版的版

关于为什么所有.NET核心应用程序都是控制台应用程序,我有一个非常基本的问题。我做了一些谷歌搜索,但没有找到任何合适的答案。

.NETCore提供的不仅仅是开箱即用的控制台应用程序,它从3.x版开始就支持WPF和WinForms。在下面的Microsoft文档链接中,您可以看到列出了.NET 5.0(即.NET Core)。如果您使用的是Visual Studio,那么您可以在“.NET”和“.NET Framework”之间进行选择(前者是.NET核心,以后会提到它),后者不会有超过4.8版的版本。应该注意的是,WPF和WinForms虽然在.NET内核上,但仅在Windows上受支持


可以这么说,因为在任何操作系统中都没有其他类型。几乎所有进程都有标准的输入和输出,可以重定向到终端或其他应用程序。几乎所有进程都是从调用“主”入口点开始的。有些进程做额外的工作,比如启动GUI应用程序的消息泵,或者生成HTTP端点。WinForms和WPF应用程序对开发人员隐藏了该代码,但它仍然存在。一点也不,一个.netcore应用程序被编译成一个DLL。EXE决定您是否会看到控制台。该EXE是一个名为apphost.EXE的文件,它是应用程序主机,与dotnet.EXE的作用相同。msbuild将其修补为目标控制台或windows子系统(取决于项目类型),然后将其复制到与项目同名的输出目录。通过生成一个诊断构建跟踪,您自己可以看到这一点,这对于CreateAppHost任务来说非常有趣。