.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单文件应用程序相关推荐

  1. lzma打包exe_【原创】手写PE文件,打造史上最小LZMA解压DLL

    因程序需求,需要在VB中调用LZMA解压数据,经过N天研究出此成果- 什么是LZMA:LZMA应该是目前世界上数一数二的压缩算法--压缩时相同的时间得到压缩比最高,解压时速度极快且几乎不占内存.如果你 ...

  2. 玩转直播+短视频 京东打造“史上最简单618”

    疫情之下,直播+短视频成为新时代的"弄潮儿",也成为本届"618"的最大看点之一! 与往年不同,本届"618"购物节,京东在站内站外联动布置 ...

  3. oracle 蜥蜴封面,《自然》封面文章遭质疑,“史上最小恐龙” 还是某种蜥蜴?...

    原标题:<自然>封面文章遭质疑,"史上最小恐龙" 还是某种蜥蜴? 3月12日,中美科学家联合发表的一篇名为<缅甸白垩纪蜂鸟大小的恐龙>的论文登上了当期< ...

  4. 史上最小 x86 Linux 模拟器「GitHub 热点速览 v.22.50」

    作者:HelloGitHub-小鱼干 本周 GitHub Trending 略显冷清,大概是国内的人们开始在养病,而国外的人们开始过圣诞.元旦双节.热度不减的 ChatGPT 依旧占据了本周大半的 G ...

  5. 可能是史上最小最好用的免费分屏软件

    可能是史上最小最好用的免费分屏软件,特别适合理工科建模仿真或者文科生同时处理多个文档,大幅度提高工作效率. 下载链接:可能是史上最小最好用的免费分屏软件

  6. “婚礼哥”蹿红网络:用巨资打造史上最完美的婚礼征服女明星

    "婚礼哥"蹿红网络:用巨资打造史上最完美的婚礼征服女明星 近日以来,以让所有"北漂爱情不再白漂"以及对当红女明星徐千雅网络示爱"我要做你一生的北京情人 ...

  7. lzg_ad:如何构建最小尺寸的XPE镜像文件

    如何创建最小尺寸的XPE镜像文件,这可能是很多人都关心的问题,在XPE开发过程中,要想创建最小尺寸的运行镜像,需要在开发过程的每一步都进行优化,同时尽可能的减少不需要的组件.创建最小尺寸的XPE操作系 ...

  8. 丰炜vb0和两台变频器的modbus rtu通信程序 史上最好用的plc modbus rtu通讯程序, 通讯效果如视频,控制,反馈无延迟

    丰炜vb0和两台变频器的modbus rtu通信程序 史上最好用的plc modbus rtu通讯程序, 通讯效果如视频,控制,反馈无延迟,真心好用,别的变频器支持modbus rtu一样可以使用id ...

  9. jdk12源代码文件_在JDK 11中启动单文件源代码程序

    jdk12源代码文件 JEP 330 –启动单文件源代码程序是即将发布的JDK 11(18.9)发行版中令人兴奋的功能之一. 此功能允许直接使用java解释器执行Java源代码. 源代码在内存中编译, ...

最新文章

  1. Matlab形态学图像处理:二值图像分割 标记连通区域和重心位置 删除连通区域
  2. 用java编写一个计算器_用java程序编写一个计算器
  3. ifix的MySQL数据库_iFIX 技术文章:iFIX历史数据库
  4. 武汉大学c语言实验报告模板,武汉大学C语言程序设计第3讲(2012级).ppt
  5. 【编译原理笔记06】语法分析,移入-归约分析:自底向上的分析,LR(0)分析法,LR(0)分析表的构建(基于自动机)
  6. 景观生态学概述[转载]
  7. Android 反编译 -smali文件对比java文件
  8. 第四章 类中数据的共享和保护
  9. 高德地图引入热力图插件失败
  10. 一文了解单线激光扫描系统的标定与成像原理
  11. 颜色模式(RGB、HSV、Lab)
  12. AVR单片机ATMEGA16编译软件ICCAVR的使用技巧与应用示例
  13. 安全算法-对称加密与非对称加密
  14. 这家机场扶梯安装“智能管家”,扶梯消毒仪现高招,绝了!
  15. 手动删除eureka多余服务
  16. swagger转换成word文档
  17. Java计算税后工资和税前工资推算
  18. ISCSI的target和initiator的部署
  19. 拉伯杠杆平台|沪指上涨,大金融板块领涨,有股票连续5涨停!
  20. Android学习之Socket多个客户端即时通信聊天

热门文章

  1. python第三周测试_python第三周小测
  2. stm32cubemx中文_用 STM32 通用定时器做微秒延时函数(STM32CubeMX版本)
  3. JAVA常见算法题(三十一)---冒泡排序
  4. 依赖注入之针对不同类型变量的几种注入方式
  5. 17、字符设备控制技术
  6. readonly和const的区别
  7. 页面闲置一段时间后,跳转
  8. 不是架构的架构之四:业务层的实现与自动代理
  9. 2019年5月 Teams Community Call (China)
  10. 使用mcBackup备份Windows 7 Media Center设置