打造史上最小尺寸.Net Core单文件应用程序
.Net Core支持将应用程序发布成单文件进行部署和分发。
以下示例将Windows应用作为独立的单文件应用程序发布:
dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true /p:IncludeNativeLibrariesForSelfExtract=true
查看publish目录,确实只有一个文件,但是尺寸比较大,这还仅仅是一个Hello World
程序,就有将近21M。
有没有办法让文件尺寸变得更小呢?
bflat
首先,下载最新版bflat(https://github.com/MichalStrehovsky/bflat/releases),并解压到D:\bflat-0.0.1-win64\
(任意目录皆可)。
然后,在项目目录下运行如下命令:
D:\bflat-0.0.1-win64\bflat.exe build Program.cs
编译完成后,生成的文件Program.exe大小只有2.69M,差不多是原来的1/10了。
这还不是最神奇的,再试试加上参数后运行:
D:\bflat-0.0.1-win64\bflat.exe build --no-reflection --no-stacktrace-data --no-globalization --no-exception-messages Program.cs
文件大小只有734K!而且能够正常运行。
这算不算史上最小尺寸.Net Core单文件应用程序?!
结论
bflat是结合Roslyn和NativeAOT的实验性编译器。因此,您可以使用高性能CoreCLR GC和本机代码生成器 (RyuJIT) 访问最新的C#功能。
就目前来说,bflat只能作为一个玩具。可以看到它只能编译单个cs文件,如果我加入nuget包,则无法编译。
但是,bflat现在还是0.0.1版本,想象一下,如果继续发展下去,能够打造真的微型应用程序的话,还是很有吸引力的。
如果你觉得这篇文章对你有所启发,请关注我的个人公众号”My IO“,记住我!
打造史上最小尺寸.Net Core单文件应用程序相关推荐
- lzma打包exe_【原创】手写PE文件,打造史上最小LZMA解压DLL
因程序需求,需要在VB中调用LZMA解压数据,经过N天研究出此成果- 什么是LZMA:LZMA应该是目前世界上数一数二的压缩算法--压缩时相同的时间得到压缩比最高,解压时速度极快且几乎不占内存.如果你 ...
- 玩转直播+短视频 京东打造“史上最简单618”
疫情之下,直播+短视频成为新时代的"弄潮儿",也成为本届"618"的最大看点之一! 与往年不同,本届"618"购物节,京东在站内站外联动布置 ...
- oracle 蜥蜴封面,《自然》封面文章遭质疑,“史上最小恐龙” 还是某种蜥蜴?...
原标题:<自然>封面文章遭质疑,"史上最小恐龙" 还是某种蜥蜴? 3月12日,中美科学家联合发表的一篇名为<缅甸白垩纪蜂鸟大小的恐龙>的论文登上了当期< ...
- 史上最小 x86 Linux 模拟器「GitHub 热点速览 v.22.50」
作者:HelloGitHub-小鱼干 本周 GitHub Trending 略显冷清,大概是国内的人们开始在养病,而国外的人们开始过圣诞.元旦双节.热度不减的 ChatGPT 依旧占据了本周大半的 G ...
- 可能是史上最小最好用的免费分屏软件
可能是史上最小最好用的免费分屏软件,特别适合理工科建模仿真或者文科生同时处理多个文档,大幅度提高工作效率. 下载链接:可能是史上最小最好用的免费分屏软件
- “婚礼哥”蹿红网络:用巨资打造史上最完美的婚礼征服女明星
"婚礼哥"蹿红网络:用巨资打造史上最完美的婚礼征服女明星 近日以来,以让所有"北漂爱情不再白漂"以及对当红女明星徐千雅网络示爱"我要做你一生的北京情人 ...
- lzg_ad:如何构建最小尺寸的XPE镜像文件
如何创建最小尺寸的XPE镜像文件,这可能是很多人都关心的问题,在XPE开发过程中,要想创建最小尺寸的运行镜像,需要在开发过程的每一步都进行优化,同时尽可能的减少不需要的组件.创建最小尺寸的XPE操作系 ...
- 丰炜vb0和两台变频器的modbus rtu通信程序 史上最好用的plc modbus rtu通讯程序, 通讯效果如视频,控制,反馈无延迟
丰炜vb0和两台变频器的modbus rtu通信程序 史上最好用的plc modbus rtu通讯程序, 通讯效果如视频,控制,反馈无延迟,真心好用,别的变频器支持modbus rtu一样可以使用id ...
- jdk12源代码文件_在JDK 11中启动单文件源代码程序
jdk12源代码文件 JEP 330 –启动单文件源代码程序是即将发布的JDK 11(18.9)发行版中令人兴奋的功能之一. 此功能允许直接使用java解释器执行Java源代码. 源代码在内存中编译, ...
最新文章
- Matlab形态学图像处理:二值图像分割 标记连通区域和重心位置 删除连通区域
- 用java编写一个计算器_用java程序编写一个计算器
- ifix的MySQL数据库_iFIX 技术文章:iFIX历史数据库
- 武汉大学c语言实验报告模板,武汉大学C语言程序设计第3讲(2012级).ppt
- 【编译原理笔记06】语法分析,移入-归约分析:自底向上的分析,LR(0)分析法,LR(0)分析表的构建(基于自动机)
- 景观生态学概述[转载]
- Android 反编译 -smali文件对比java文件
- 第四章 类中数据的共享和保护
- 高德地图引入热力图插件失败
- 一文了解单线激光扫描系统的标定与成像原理
- 颜色模式(RGB、HSV、Lab)
- AVR单片机ATMEGA16编译软件ICCAVR的使用技巧与应用示例
- 安全算法-对称加密与非对称加密
- 这家机场扶梯安装“智能管家”,扶梯消毒仪现高招,绝了!
- 手动删除eureka多余服务
- swagger转换成word文档
- Java计算税后工资和税前工资推算
- ISCSI的target和initiator的部署
- 拉伯杠杆平台|沪指上涨,大金融板块领涨,有股票连续5涨停!
- Android学习之Socket多个客户端即时通信聊天