2019-10-26-dotnet-core-发布只有一个-exe-的方法
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
dotnet core 发布只有一个 exe 的方法
|
lindexi
|
2019-10-26 8:42:7 +0800
|
2019-2-1 10:6:38 +0800
|
dotnet dotnetcore
|
在 dotnet core 发布的时候,会使用很多文件,这样发给小伙伴使用的时候不是很清真,本文告诉大家一个非官方的方法通过 warp 将多个文件打包为一个文件
和之前相同的方式发布一个 dotnet core 程序,记得需要使用 --self-contained 发布
dotnet publish -c Release --self-contained -r win-x86
这时可以在输出的文件夹 bin 的 Release\netcoreapp2.1\win-x86\publish 文件夹看到输出的文件,可以看到输出的文件很多,这时通过 Powershell 下载 warp 工具
[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
当然这个下载方法有些诡异,同时国内的网速也不是很好,可以通过 官网 或 csdn 下载
下载之后将 warp-packer.exe 放在 Release\netcoreapp2.1\win-x86\publish 的上一级文件夹里面,就放在 Release\netcoreapp2.1\win-x86 文件夹
这样就可以通过下面的命令打包出一个 exe 包含里面的文件
当前的命令行路径是 Release\netcoreapp2.1\win-x86 > .\warp-packer --arch windows-x64 --input_dir .\publish\ --exec 在publish文件夹里面运行的程序 --output 输出的.exe
如在 Release\netcoreapp2.1\win-x86 里面的可运行程序 exe 是 lindexi.exe 我可以通过下面的代码合并里面的文件为一个 exe 文件
.\warp-packer --arch windows-x64 --input_dir .\publish\ --exec lindexi.exe --output lindexi.exe
同时使用这个工具还有一个好处,就是对文件进行压缩
限制:
当前(2019年1月3日)只能发布 x64 的版本的程序,如 windows x64 和 linux x64 程序
命令行工具
现在可以通过 dotnet 工具使用 warp 发布,在使用之前先安装工具
dotnet tool install --global dotnet-warp
安装完成可以在输出文件夹里面执行 dotnet-warp 就可以打包为单个exe文件
这个项目在github欢迎小伙伴访问
使用 dotnet 命令行发布
在 dotnet core 3 preview5 支持在命令行一键打包为一个文件
这个文件包含所有的依赖和资源文件,在启动的时候将所有依赖复制到临时文件夹,然后将这些依赖加载。这个解压只会在第一次运行,之后都可以快速启动
dotnet publish -r win10-x64 /p:PublishSingleFile=true
新建一个控制台创建使用上面命令发布为一个 exe 文件的大小大概是 67M 左右
第一次运行需要解压文件到临时文件夹的 .net\程序集名\xx 文件夹里面,然后再运行
dgiagio/warp: Create self-contained single binary applications
Single exe self contained console app · Issue #13329 · dotnet/corefx
2019-10-26-dotnet-core-发布只有一个-exe-的方法的更多相关文章
- dotnet core 发布只有一个 exe 的方法
在 dotnet core 发布的时候,会使用很多文件,这样发给小伙伴使用的时候不是很清真,本文告诉大家一个非官方的方法通过 warp 将多个文件打包为一个文件 和之前相同的方式发布一个 dotnet ...
- dotnet core 发布只带必要的依赖文件
在使用 dotnet core 发布独立项目的时候,会带上大量依赖的库,但是通过微软提供的工具可以去掉一些在代码没有用到的库. 本文介绍的工具是 Microsoft.Packaging.Tools.T ...
- 将WinForm程序(含多个非托管Dll)合并成一个exe的方法
原文:将WinForm程序(含多个非托管Dll)合并成一个exe的方法 开发程序的时候经常会引用一些第三方的DLL,然后编译生成的exe文件就不能脱离这些DLL独立运行了. ILMerge能把托管dl ...
- 使用Visual Studio 2019将ASP.NET Core发布为linux-arm64程序
前言 前段时间入手了一台树莓派4B,一直闲置未使用,最近工作需要,要在上面跑下.NET Core程序,由于树莓派4B使用的是ARM架构,并且支持64位操作系统,为了充分发挥树莓派性能,我的这台树莓派安 ...
- dotnet core 发布环境变量配置 dev/stage/prod
https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/environments?view=aspnetcore-2.2 https://d ...
- dotnet core 发布配置(测试数据库和正式数据库自动切换)
一.起源 在进行项目开发时,常常要求开发环境,测试环境及正式环境的分离,并且不同环境运行的参数都是不一样的,比如监听地址,数据库连接信息等.当然我们把配置信息保存到一个文件中,每次发布的时候,可以先修 ...
- 2019.10.26 CSP%您赛第三场
\(CSP\)凉心模拟^_^ --题源\(lqx.lhc\)等各位蒟蒻 题目名称 比赛 传递消息 开关灯 源文件名 \(competition.cpp\) \(message.cpp\) \(ligh ...
- 6392. 【NOIP2019模拟2019.10.26】僵尸
题目描述 题解 吼题但题解怎么这么迷 考虑一种和题解不同的做法(理解) 先把僵尸离散化,h相同的钦(ying)点一个大小 (可以发现这样每种情况只会被算正好一次) 计算完全被占领的方案,然后1-方案/ ...
- 6389. 【NOIP2019模拟2019.10.26】小w学图论
题目描述 题解 之前做过一次 假设图建好了,设g[i]表示i->j(i<j)的个数 那么ans=∏(n-g[i]),因为连出去的必定会构成一个完全图,颜色互不相同 从n~1染色,点i的方案 ...
- 2019/10/26 TZOJ
1001 Flooded Island http://www.tzcoder.cn/acmhome/problemdetail.do?&method=showdetail&id=452 ...
随机推荐
- npm 安装删除模块
npm安装模块 [npm install xxx]利用 npm 安装xxx模块到当前命令行所在目录: [npm install -g xxx]利用npm安装全局模块xxx: 本地安装时将模块写入pac ...
- Data Lake Analytics,大数据的ETL神器!
0. Data Lake Analytics(简称DLA)介绍 数据湖(Data Lake)是时下大数据行业热门的概念:https://en.wikipedia.org/wiki/Data_lake. ...
- ubuntu 软件的更新及解决软件中心自己无法打开
sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install --reinstall software-center
- 易语言连接RCON详细教程实例(演示连接Unturned服务器RCON)
一.准备工作 工 具: 1.易语言 2.RCON服务端(这里我使用unturned服务器的RCON作为演示) 二.启动Unturned服务器并配置RCON 打开unturned服务器路径:F:\Unt ...
- hadoop-hive查询ncdc天气数据实例
使用hive查询ncdc天气数据 在hive中将ncdc天气数据导入,然后执行查询shell,可以让hive自动生成mapredjob,快速去的想要的数据结果. 1. 在hive中创建ncdc表,这个 ...
- P1460 健康的荷斯坦奶牛 Healthy Holsteins
P1460 健康的荷斯坦奶牛 Healthy Holsteins 题目描述 农民JOHN以拥有世界上最健康的奶牛为傲.他知道每种饲料中所包含的牛所需的最低的维他命量是多少.请你帮助农夫喂养他的牛,以保 ...
- tp5.1 本地正常, 线上route.php不起作用的问题
由于本项目 的.htaccess文件是放在根目录的, 上传没有覆盖,重新编辑 <IfModule mod_rewrite.c> Options +FollowSymlinks -Multi ...
- Vue2.0史上最全入坑教程(中)—— 脚手架代码详解
书接上文我们说道,如何利用脚手架(vue-cli)构建一个vue项目,本回书我们一起来学习分析下代码. 回顾下创建后的项目目录: 说明:在*.vue文件,template标签里写html代码,且t ...
- mysql错误日志目录
在windows下,一般是mysql安装目录下的data目录下 ,扩展名是.err的文件.
- python 下载安装及运行环境配置(windows)
第一步:下载python安装包 下载地址:https://www.python.org/downloads/windows/ 我下载的是版本:3.6.4 安装包下载完成后,点击进行安装. 第二步:配置 ...