为什么.NET Core控制台项目发布后是一个dll文件,而不是exe文件?

项目中有一个.NET Core控制台项目叫ConsoleCoreApp,写好代码后准备发布:操作系统

结果发布后生成的是一个dll文件。。。为不是一个exe的可执行文件:blog

 

 

后来了解到.NET Core的项目分为两种发布方式,一种叫Framework-dependent deployments (FDD),还有一种叫Self-contained deployments (SCD),这两种发布有何区别能够查看微软的官方文档文档

而默认状况下.NET Core控制台项目的发布方式为Framework-dependent deployments (FDD),这种方式生成的就是dll文件,须要用"dotnet ConsoleCoreApp.dll"指令来运行。而若是在发布的时候选择Self-contained deployments (SCD)方式,生成的就是exe文件。部署

如今咱们仍是在项目上选择发布,不过此次咱们在发布前先配置发布选项,点击配置:get

有两个选项须要更改,一个是部署模式,咱们此次选为:独立(即Self-contained deployments (SCD)模式),而后目标运行时选为:win-x64(这个选项和你部署后的操做系统有关),而后点保存。配置

而后再次发布:程序

此次咱们能够看到发布后生成的就是exe文件了,可是很明显因为Self-contained deployments (SCD)模式会将全部.NET Core的系统程序集也都生成出来,会形成发布后的发布文件数量增长,整个项目的程序文件变大,这一点要注意!im

相关文章
相关标签/搜索