.Net Core程序最终只产生1个exe
1、用VS新建一个.Net Core 命令行程序,程序里面写什么都行,我的是这样的

2、打开程序包控制台,或者使用PowerShell等可以执行dotnet命令的工具,把你的.Net 程序发布(编译)出来,win-x86 是 保证产生的这一堆文件中有.exe文件
dotnet publish -c Release --self-contained -r win-x86

执行指令后,就会在这里多一个publish文件夹,publish文件夹里面有各种dll和别的乱七八糟的文件以及一个Generate.exe文件,双击这个exe就能执行程序,但我们不想给这么一大堆东西给别人用,所以下面要把publish文件夹整合成1个exe文件
3、获取warp-packer.exe这个小工具
可以使用PowerShell获取,也可以到官网 获取,PowerShell获取的指令为,OutFile为获取后文件放哪,下面的指令是放到当前打开PowerShell的目录下
[Net.ServicePointManager]::SecurityProtocol = "tls12, tls11, tls" ; Invoke-WebRequest https://github.com/dgiagio/warp/releases/download/v0.3.0/windows-x64.warp-packer.exe -OutFile warp-packer.exe
4、确保warp-packer.exe和publish文件夹在同一文件夹下,在这个文件夹下(即win-x86文件夹下)PowerShell执行指令,指令大致意思是把当前目录下的publish文件夹下的所有文件整合起来,其中,publish文件夹下的可执行文件为GenerateCsFile.exe,输出文件为当前目录下的gcf.exe(这个名字随便取)
.\warp-packer --arch windows-x64 --input_dir .\publish\ --exec GenerateCsFile.exe --output gcf.exe
指令执行后就会产生gcf.exe文件了,由于是发布文件夹生成的文件,所以只要拿着这个gcf.exe到别的机器(可运行x86程序的机器)上,就可以执行,无需任何别的文件

P.S. 如果确定运行这个exe的目标机器上安装了.net core runtime的,也可以使用这个命令编译到一个文件夹中,这样产生的文件大小比较小(dotnet publish指令会把依赖的所有dll都拉进文件夹中),对比了一下publish整合出来的exe大小为26.2M,这种产生的exe大小只有1.45M
dotnet build --runtime win-x64

最后,大家可能会问“我每次打包exe都要这么走一遭,那不是很麻烦“,马上给自己的dotnet安装这个小工具,VS程序包控制台运行
dotnet tool install --global dotnet-warp
就可以直接在PowerShell运行dotnet-warp来打包啦(好像有点代价,这种方式产生的exe似乎还会再大一点--29.1M)

参考自lindexi的博客
.Net Core程序最终只产生1个exe的更多相关文章
- 从头认识一下docker-附带asp.net core程序的docker化部署
从头认识一下docker-附带asp.net core程序的docker化部署 简介 在计算机技术日新月异的今天, Docker 在国内发展的如火如荼,特别是在一线互联网公司, Docker 的使用是 ...
- 关于.net core程序的部署
最近发布.net core程序的时候,发现它是可以独立部署的,它支持如下两种部署方式: 依赖框架的部署FDD.只发布我们的程序,运行前用户需要手动安装.net core runtime. 独立部署SC ...
- 如何在Visual Studio 2017中使用C# 7+语法 构建NetCore应用框架之实战篇(二):BitAdminCore框架定位及架构 构建NetCore应用框架之实战篇系列 构建NetCore应用框架之实战篇(一):什么是框架,如何设计一个框架 NetCore入门篇:(十二)在IIS中部署Net Core程序
如何在Visual Studio 2017中使用C# 7+语法 前言 之前不知看过哪位前辈的博文有点印象C# 7控制台开始支持执行异步方法,然后闲来无事,搞着,搞着没搞出来,然后就写了这篇博文,不 ...
- ASP.NET Core教程:ASP.NET Core 程序部署到Windows系统
一.创建项目 本篇文章介绍如何将一个ASP.NET Core Web程序部署到Windows系统上.这里以ASP.NET Core WebApi为例进行讲解.首先创建一个ASP.NET Core We ...
- 如何在ASP.NET Core程序启动时运行异步任务(3)
原文:Running async tasks on app startup in ASP.NET Core (Part 3) 作者:Andrew Lock 译者:Lamond Lu 之前我写了两篇有关 ...
- 如何优雅的利用Windows服务来部署ASP.NET Core程序
上一篇文章中我给大家讲述了五种部署ASP.NET Core网站的方法,其中有一种方式是通过Windows服务来进行部署,这样既可以做到开启自启动,又不会因为iis的反向代理而损失部分性能.但是美中不足 ...
- 查看服务器运行多少个ASP.NET Core程序
有时候,我们会想知道某台机器上面跑了什么程序. 当程序部署到IIS上面的时候,我们只需要打开IIS一看,就知道有多少个站点在运行了. 当我们在CentOS上面部署的时候,就没那么的直观了. 当然对于熟 ...
- .net core程序部署
前期将一些程序切换到了.net core,本文这里记录下windows 下.net core程序部署相关的方法.有同样需求的朋友可以参考一下,以免少走一些弯路. .net core程序部署主要工作就是 ...
- tms web core程序部署
tms web core程序部署 笔者把已经开发好的TMS WEB CORE程序部署到阿里云服务器上面,来作为例子. 1)复制TMS WEB CORE前端程序到服务器的c:\room\ 2)复制TMS ...
随机推荐
- 《Kubernetes权威指南》01_Kubernetes入门——Kubernetes 是什么
01_Kubernetes入门 li {list-style-type:decimal;}.wiz-editor-body ol.wiz-list-level2 > li {list-style ...
- vue响应式原理的实现
响应式实现的原理---如何监控数据的变化:两种方法 Vue 2.x defineProperty(es5) Vue 3.x Proxy(es6) 语法:Object.defineProperty(参数 ...
- Jutil 单元测试
eclipse 自身集成了jtuil,右击项目,点击bulidpath,addjar,如下所示添加jutil 新建一个Junit的测试类用来测试上面的测试方法,新增Junit的测试类方法如下: // ...
- CentOS7安装docker以及错误解决
今天在公司电脑上安装docker出现了一些问题,原先是直接用yum安装docker,一次就成功了,由于公司的网络问题导致docker安装完出现了一些问题,客户端启动了,服务端一直启动不了:Job fo ...
- linux下oracle调试小知识
1.oracle 安装下的/u01/diag/rdbms/orcl/HOF/incident目录下是什么文件?答:每当一个错误发生的时候,oracle会创建一个incident,并且分配一个INCID ...
- 异常处理 | java.lang.IllegalArgumentException: Request header is too large
背景 今天在自己使用Springboot开发博客系统的时候,在浏览器点击提交markdown文件一直出现以下异常: java.lang.IllegalArgumentException: Reques ...
- 类与 Object 的应用
# 类与 Object 的应用 + 面试题 类介绍 Java 程序是由若干个类组成的,类也是面向对象编程思想的具体实现. 以下为类的基本使用: public class Cat { // 私有属性 p ...
- 设计模式-05建造者模式(Builder Pattern)
1.模式动机 比如我们要组装一台电脑,都知道电脑是由 CPU.主板.内存.硬盘.显卡.机箱.显示器.键盘和鼠标组成,其中非常重要的一点就是这些硬件都是可以灵活选择,但是组装步骤都是大同小异(可以组一个 ...
- C++不同类中的特征标相同的同名函数
转载请注明出处,版权归作者所有 lyzaily@126.com yanzhong.lee 作者按: 从这篇文章中,我们主要会认识到一下几点: ...
- Go语言实现:【剑指offer】从尾到头打印链表
该题目来源于牛客网<剑指offer>专题. 输入一个链表,按链表从尾到头的顺序返回一个ArrayList. Go语言实现: type ListNode struct { Val int ...