.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 ...
随机推荐
- Shell常用语句及结构
条件判断语句之if if 语句通过关系运算符判断表达式的真假来决定执行哪个分支:shell有三种if语句样式,如下: 语句1 if [ expression ] then Statement(s) t ...
- CodeBlocks 断点调试
启动调试器 1. 一般,调试器的按钮可以在工具栏找到 如果没有,可以从view菜单项中调出 2. 设置断点 使用调试器时需要让程序在需要的位置中断,在启动调试器前设置断点如下,鼠标点击编辑器的左边即可 ...
- linux --- 杀掉特定端口进程与启用SSH服务
Linux下端口被占用解决 有时候关闭软件后,后台进程死掉,导致端口被占用.下面以JBoss端口8083被占用为例,列出详细解决过程. 解决方法: 1.查找被占用的端口 netstat -tln ne ...
- CassandraAppender - distributed logging,分布式软件logback-appender
农历年最后一场scala-meetup听刘颖分享专业软件开发经验,大受启发.突然意识到一直以来都没有完全按照任何标准的开发规范做事.诚然,在做技术调研和学习的过程中不会对规范操作有什么严格要求,一旦技 ...
- 使用纯C++迭代器编写归并排序
第一次尝试用C++迭代器编写算法,使用的是纯迭代器 void mergeSort(vector<int>::iterator beg, vector<int>::iterato ...
- HEXO常用命令总结
博客搬家:hexo常用命令总结 常见命令 hexo new "postName" #新建文章 hexo new page "pageName" #新建页面(新建 ...
- HDU2066dijkstra模板题
问题描述: 题目描述:Problem Description 虽然草儿是个路痴(就是在杭电待了一年多,居然还会在校园里迷路的人,汗~),但是草儿仍然很喜欢旅行,因为在旅途中 会遇见很多人(白马王 ...
- Elasticsearch系列
一.Elasticsearch简介 二.elasticsearch集群监控相关
- 题解 SDOI2010 【栗栗的书架】
\[ Preface \] 看到这题洛谷标签有 主席树 ,还以为是什么二维主席树的玄学做法(雾 \[ Description \] 给出一个 \(R×C\) 的矩阵. 一共 \(m\) 次询问,每次询 ...
- STM32片外SRAM作运行内存
本例演示用的软硬件: 片内外设驱动库:STM32CubeF41.24.1的HAL库1.7.6,2019年4月12日 IDE:MDK-ARM 5.28.0.0,2019年5月 开发板:片外SRAM挂在F ...