為何.NET Core控制台項目發布后是一個dll文件,而不是exe文件?


項目中有一個.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的系統程序集也都生成出來,會造成發布后的發布文件數量增加,整個項目的程序文件變大,這一點要注意!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM