因為 .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可以正常加載改文件