【C#程序集】為何.NET Core控制台項目發布后是一個dll文件,而不是exe文件?


 

因為 .NET Core 的控制台應用默認是生成 dll 文件,而沒有對應的 exe 文件。如下圖所示,是在VS中編譯后生成的結果

圖中看到的TestVisualizer.exe 只是一個快捷方式,

用ilspy是無法加載這個exe文件,就可以證明它不是程序集了

 

 

 要執行TestVisualizer.dll程序集需要用命令行來執行:dotnet TestVisualizer.dll

NET Core的項目分為兩種發布方式,一種叫Framework-dependent deployments (框架依賴部署 (FDD)),還有一種叫Self-contained deployments (和獨立式部署 (SCD)),這兩種發布有何區別可以查看微軟的官方文檔

而默認情況下.NET Core控制台項目的發布方式為Framework-dependent deployments (FDD),這種方式生成的就是dll文件,需要用"dotnet 應用程序名稱.dll"指令來運行。而如果在發布的時候選擇Self-contained deployments (SCD)方式,生成的就是exe文件。

 

.net core如何生成 exe格式的程序集?

1、通過命令行的方式生成.exe文件

在VS中直接調試時,只能生成對應的 dll 文件,要生成 exe 文件則需要用命令行來進行

(1)、首先回到 Program.cs 文件所在路徑

 

 

 

(2)、在該路徑下執行命令即可生成對應的 exe 文件,在標題欄輸入cmd 回車就會出現命令行,然后再命令里面輸入:

一下命令意思是 -r :run 運行、win-x64 :window 64位系統,PublishSingleFile:是否將依賴文件都打包在一起

dotnet publish -r win10-x64 /p:PublishSingleFile=true

或者

dotnet publish -r win-x64 /p:PublishSingleFile=true

或者

dotnet publish -r win-x86 /p:PublishSingleFile=true

或者 蘋果系統

dotnet publish -r osx-x64

 

 

 

 我們再該目錄下找到該問題就TestVisualizer.exe(可以用ILspy 加載改文件)。

程序發布請看:https://docs.microsoft.com/zh-cn/dotnet/core/deploying/

 

2、通過在IDE生成 exe

在vs2019 中,右鍵項目 點擊發布

 

 

 

 

 

 勾選生成單個文件

發布成功后就生成TestVisualizer.exe,用ILspy可以正常加載改文件

 

 

 

 


免責聲明!

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



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