爲什麼.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

相關文章
相關標籤/搜索