打造史上最小尺寸.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“,记住我!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/300928.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华硕路由器 linux上不了网,华硕ASUS路由器连不上网怎么办?

在本文中将给大家详细的介绍,华硕(ASUS)路由器连不上网/无法上网的解决办法,请按照下面的步骤进行操作。1. 首先,检查你的宽带是否可以正常使用,可以通过下面的方法进行测试。(1)观察光猫上的指示灯,如果光信号或者LOS…

NHibernate学习笔记(二):one-to-one关系映射

上一篇:NHibernate学习笔记(一):初识NHibernate本文的内容:1.介绍NH如何处理对象间one-to-ont的映射关系;经验教训:1.操作一对一关联关系中的一个…

【汇总】多种方法教你绕过 TPM 2.0 安装 Windows 11 操作系统

此前我们曾介绍三种方法绕过 TPM 2.0 来安装 Windows 11 操作系统。方法一:删除 appraiserres.dll 文件方法二:替换 appraiserres.dll 文件方法三:替换 install.wim 文件今儿我们再谈谈“大法好”的注册表,希望能帮助大家成功安装…

【物理笑话】学过物理的人才能看懂的笑话,你能看明白几个?

全世界只有3.14 % 的人关注了青少年数学之旅1丈夫买了几斤廉价藕,满以为可对妻子炫耀了。不料妻子破口大骂:笨蛋!为何不买别的菜,这藕一斤少说也有半斤窟窿啊!还说便宜?2第一次坐飞机的两位老妇人在飞机起飞…

为什么国外程序员加班少?他们这样评价国内996和技术公众号

有人统计过,我们平均每天花在看内容上的时间是5-6小时与其每天被各种看过就忘的内容占据时间不如看点真正对你有价值的信息下面小编为你推荐几个高价值的公众号它们提供的信息能真正提高你生活的质量长按二维码,选择【识别图中二维码】关注Python爱好者社…

c语言编程每日一练教程,每日一练 | C语言之指针

原标题:每日一练 | C语言之指针练习导言学习 C 语言的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,想要成为一名优秀的 C 程序员&…

dynamic flash xml news----滚动新闻

今天有人问起这个问题,抽出晚上的一点时间,做了一个,时间紧难免有不足之处,如果发现bug,请以在贴出。演示:代码:代码://copyright by webstudio.com.cn 2005-4-7 system.useCodepagetrue; Stage…

C# 代码生成二维码方法及代码示例(QRCoder)

背景二维码是越来越流行了,很多地方都有可能是使用到。如果是静态的二维码还是比较好处理的,通过在线工具就可以直接生成一张二维码图片,比如:草料二维码。但有的时候是需要动态生成的(根据动态数据生成)&a…

你对手机打字一无所知!| 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅(视频源网络,侵权删)你真的会打字吗↓ ↓ ↓

并行中的分区Partitioner

本篇介绍在C#中,把一个大集合,或大数组分成若干个区来执行。Demo中是把一组字符串放在list中,然后并行生成MD5串,返回回来。using System; using System.Collections.Generic; using System.Reflection; using System.Threading.T…

搞笑诺贝尔颁出,中国科学家入选!阿蟑有磁性、睾丸热不对称,10大奇葩研究来了...

全世界只有3.14 % 的人关注了青少年数学之旅Laugh and think,科学的另一面,就是有趣!——在今天的哈佛大学桑德斯剧场,一群科学家身体力行地证明了这件事,在诺贝尔奖颁出前夕,率先发布了今年的“搞笑诺贝尔…

C++中的对象数组

类是对象的抽象,我们可以使用一个类来定义很多的对象,然后每个对象都有自己的属性。 当我们使用类来定义很多相同结构的对象的时候,我们可以采取对象数组的方法。 例如,一个班有50个学生,我们定义了一个学生类&#xf…

周杰伦新歌《说好不哭》彩蛋大汇总! | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅一首单曲,就霸占了一半的微博热搜榜,除了周杰伦,估计也没别人能做得到了。回想起前段时间,周杰伦的中老年粉丝与ikun们围绕着“顶级流量”展开的那场battle...说实话,那场 b…

AI日报:2024年人工智能对各行业初创企业的影响

欢迎订阅专栏 《AI日报》 获取人工智能邻域最新资讯 文章目录 2024年人工智能对初创企业的影响具体行业医疗金融服务运输与物流等 新趋势 2024年人工智能对初创企业的影响 2023年见证了人工智能在各个行业的快速采用和创新。随着我们步入2024年,人工智能初创公司正…

Ant Design Blazor 组件库的路由复用多标签页介绍

前言Blazor 是 .NET 最新的前端框架,可以基于 WebAssembly 或 SignalR (WebSocket)构建前端应用程序,基于 WebAssembly 托管模型的 Blazor 甚至可以离线运行。再加上可以共用 .NET 类库,能使代码量比以往的基于 JS 的前…

AI 竟然通过了初中生考试!?这意味着什么?

全世界只有3.14 % 的人关注了青少年数学之旅2016 年 AlphaGo 战胜世界棋王李世石,被认为是人工智能一个重要的里程碑。此后 AlphaGo 又击败了世界排名第一的围棋选手柯洁,AI 也在德州扑克、Dota 2 等游戏上战胜了专业的人类玩家,越来越聪明的…

基于Yarp实现内网http穿透

Yarp介绍YARP是微软开源的用来代理服务器的反向代理组件,可实现的功能类似于nginx。基于YARP,开发者可以非常快速的开发一个性能不错的小nginx,用于代理http(s)请求到上游的http(s)服务。http穿透原理同网现象在http反向代理里,代…

男科医生到底有多不正经… | 今日最佳

全世界只有3.14 % 的人关注了青少年数学之旅(图源真是个鬼才)赶紧转给了身边有这种经历的朋友↓ ↓ ↓

5张图带你了解Pulsar的存储引擎BookKeeper

Apache BookKeeper是一款企业级存储系统,最初由雅虎研究院研发,在2011年作为Apache ZooKeeper的子项目进行孵化,在2015年1月成为 Apache顶级项目。起初,BookKeeper是一个预写日志(WAL)系统,经过几年的发展,…

筛选装置用c语言编程,一种空壳瓜子筛选装置的制作方法

本实用新型涉及食品机械领域,特别是一种空壳瓜子筛选装置。背景技术:食品机械是指把食品原料加工成食品(或半成品)过程中所应用的机械设备和装置。食品工业是我国国民经济的支柱产业,食品机械是为食品工业提供装备的行业。随着人民生活水平的…