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

【C#程序集】为何.NET Core控制台项目发布后是一个dll文件,而不是exe文件?的更多相关文章

  1. 为何.NET Core控制台项目发布后是一个dll文件,而不是exe文件?

    项目中有一个.NET Core控制台项目叫ConsoleCoreApp,写好代码后准备发布: 结果发布后生成的是一个dll文件...为不是一个exe的可执行文件: 后来了解到.NET Core的项目分 ...

  2. ASP.NET CORE MVC 2.0 如何在Filter中使用依赖注入来读取AppSettings,及.NET Core控制台项目中读取AppSettings

    问: ASP.NET CORE MVC 如何在Filter中使用依赖注入来读取AppSettings 答: Dependency injection is possible in filters as ...

  3. 新建 .NET Core 控制台项目 C# 数组深拷贝

    新建 .NET Core 控制台项目 1. 安装 .NET Core SDK 1.0 参考微软官方网站 https://www.microsoft.com/net/download/windows 2 ...

  4. 将Python文件打包为exe文件,并在控制台运行之简易教程

       第一步  在线安装 pyinstaller. 方法:打开win+ R,输入cmd,在命令行输入"pip install pyinstaller" 静等几分钟后即可安装成功. ...

  5. vue项目发布后带路径打开页面报404问题

    环境: 后端,python+uwsgi启动 前端:vue  用nginx运行,指定静态目录 问题 :发布后带路径打开页面报404问题,带路径打开即不是打开的主页 解决方案: https://route ...

  6. 新建 .NET Core 控制台项目

    1. 安装 .NET Core SDK 1.0 参考微软官方网站 https://www.microsoft.com/net/download/windows 2. 打开命令提示符:输入以下代码验证S ...

  7. .NET Core 控制台项目中的Nuget打包类库及引用

    由于使用的是MAC版本的VSCode,所以全部是通过dotnet命令来完成的. 1.dotnet new lib 创建类库项目: 2.编辑项目根目录下的.csproj文件,添加版本号(建议): < ...

  8. ASP.NET Core Web 项目 发布的IIS7提示“HTTP Error 502.5 - Process Failure

    原因就是NUGET引用的DLL和SDK的版本不对, 你打开CMD,在项目bin目录运行dotnet xxx.dll, 会看到具体错误信息 所以你要么引用低版本的dll,要么升级最新SDK

  9. asp.net core控制台项目运行

    cmd中进入项目生成的dll目录下 运行命令: start dotnet xxx.dll

随机推荐

  1. golang中的标准库IO操作

    参考链接 输入输出的底层原理 终端其实是一个文件,相关实例如下: os.Stdin:标准输入的文件实例,类型为*File os.Stdout:标准输出的文件实例,类型为*File os.Stderr: ...

  2. nginx二进制安装

    目录 一:二进制安装nginx 1.下载CentOS源 2.安装CentOS源 3.下载epel源(失败显示未找到命令) 4.解决依赖 5.安装Epel源 6.安装nginx 一:二进制安装nginx ...

  3. linux正则表达式(全面解析)

    目录 一:linux正则表达式介绍 二:普通正则表达式 三:扩展正则 一:linux正则表达式介绍 1.正则表达式的分类(grep) 1.普通正则表达式 2.扩展正则表达式 二:普通正则表达式 ^ : ...

  4. Redis命令大全(超详细)

    一:序 其实本文的命令大家都可以去官网学习,但是我出这篇文章只是以更直观的方式来解读官网上的命令,让大家一眼可以看得懂,看的明白: 注意:我全文使用的Redis版本为 6.2.x 版本,低版本可能有些 ...

  5. 如何快速将数据用逗号隔开——巧用EXCEL

    问题是这样的,下图是爬虫获得的数据,注意该数据存储在CSV格式的EXCEL表格中,单元格中的数据每四个代表一个点的经纬度,但是很明显它现在的这个形式是没法利用的, 因此需要对数据进行挖掘,提取出经纬度 ...

  6. JavaFx 软件重启功能实现

    原文地址: JavaFx 软件重启功能实现 | Stars-One的杂货小窝 本篇使用Kotlin在TornadoFx中实践,没有Java代码的示例,各位自行参考,思路已在本文中提及 实现思路 主要思 ...

  7. HCNP Routing&Switching之组播技术-IGMP-Snooping

    前文我们了解了组播协议IGMP相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15700550.html:今天我们来聊一聊二层交换机处理组播报文所面临的 ...

  8. ApacheCN Linux 译文集 20211129 更新

    笨办法学 Linux 中文版 练习 0:起步 练习 1:文本编辑器,vim 练习 2:文本浏览器,少即是多 练习 3:Bash:Shell..profile..bashrc..bash_history ...

  9. aidl介绍

    (1)远程服务 运行在其他应用里面的服务     (2)本地服务 运行在自己应用里面的服务    (3)进行进程间通信  IPC   (4)aidl Android interface Definat ...

  10. 按照递推的思想求解next[]数组

    按照递推的思想求解next[]数组 根据定义next[0]=-1,假设next[j]=k, 即P[0...k-1]==P[j-k,j-1] 若P[j]P[k],则有P[0..k]P[j-k,j],很显 ...