項目中有一個.NET Core控制台項目叫ConsoleCoreApp,寫好代碼后准備發布:
結果發布后生成的是一個dll文件。。。為不是一個exe的可執行文件:
后來了解到.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文件。
現在我們還是在項目上選擇發布,不過這次我們在發布前先配置發布選項,點擊配置:
有兩個選項需要更改,一個是部署模式,我們這次選為:獨立(即Self-contained deployments (SCD)模式),然后目標運行時選為:win-x64(這個選項和你部署后的操作系統有關),然后點保存。
然后再次發布:
這次我們可以看到發布后生成的就是exe文件了,但是很明顯由於Self-contained deployments (SCD)模式會將所有.NET Core的系統程序集也都生成出來,會造成發布后的發布文件數量增加,整個項目的程序文件變大,這一點要注意!