【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