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

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在VS2019中创建ASP.NET Core应用程序时,可能会遇到找不到ASP.NET Core应用程序模板的情况。这可能是由于未安装或未正确安装ASP.NET Core开发工具包所致。为了解决这个问题,您可以按照以下步骤进行操作: 1. 打开Visual Studio 2019,并确保您已经安装了最新版本的Visual Studio和ASP.NET Core开发工具包。 2. 在Visual Studio的顶部菜栏中,选择“工具”>“获取工具和功能”。 3. 在弹出的窗口中,选择“修改”选项卡。 4. 在“工作负载”选项卡中,展开“Web和云”类别。 5. 确保已选中“ASP.NET和Web开发”选项。 6. 击“修改”按钮,开始安装或更新所选的工作负载。 7. 完成安装或更新后,重新启动Visual Studio。 现在,您应该能够在VS2019中找到ASP.NET Core应用程序模板,并创建您所需的应用程序类型,如“空”模板项目、“API”模板项目、“web-razorpages”和“web-mvc”等。请注意,根据您的安装和配置,模板的可用性可能会有所不同。 #### 引用[.reference_title] - *1* *2* *3* [.netcore入门14:使用vs2019创建asp.net core应用的四种模板的区别和用法](https://blog.csdn.net/u010476739/article/details/104557754)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值