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