最新 NET6 的单文件尝试,已经与golang差不多了

最新 NET6 的单文件尝试,已经与golang差不多了直接新建了一个默认项目 PSD Project net6 gt dotnetnewcon ConsoleAppli wascreatedsu Processingpo creationacti Running dotnetrestor onD Project net6 net6 csproj 正在确定要还原的项目 已还原 D Project net6 net6 cs

半年前(2月20日)测试过,现在(2021年8月25日)再次使用最新的 .NET 6.0.0-preview.7 再次验证一下。

PS C:\Users\Administrator> dotnet --version 6.0.100-preview.7.21379.14 

直接新建了一个默认项目:

PS D:\Project\net6> dotnet new console The template "Console Application" was created successfully. Processing post-creation actions... Running 'dotnet restore' on D:\Project\net6\net6.csproj... 正在确定要还原的项目… 已还原 D:\Project\net6\net6.csproj (用时 75 ms)。 Restore succeeded. 

默认单文件,一个Hello World! 60MB 60.2MB:

PS D:\Project\net6> dotnet publish -r win-x64 -p:PublishSingleFile=true --self-contained true 用于 .NET 的 Microsoft (R) 生成引擎版本 16.9.0-preview-21103-02+198f3f262 版权所有(C) Microsoft Corporation。保留所有权利。 正在确定要还原的项目… 所有项目均是最新的,无法还原。 你正在使用 .NET 的预览版。请查看 https://aka.ms/dotnet-core-preview net6 -> D:\Project\net6\bin\Debug\net6.0\win-x64\net6.dll net6 -> D:\Project\net6\bin\Debug\net6.0\win-x64\publish\ PS C:\Users\Administrator> D:\Project\net6\bin\Debug\net6.0\win-x64\publish\net6.exe Hello World! PS D:\Project\net6> dir .\bin\Debug\net6.0\win-x64\publish\ 目录: D:\Project\net6\bin\Debug\net6.0\win-x64\publish Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2021/2/3 星期三 4:11  mscordaccore.dll -a---- 2021/2/20 星期六 11:09  net6.exe -a---- 2021/2/20 星期六 11:05 9404 net6.pdb 

使用PublishTrimmedPublishReadyToRun参数后 21MB 13.6MB。

PS D:\Project\net6> dotnet publish -r win-x64 -p:PublishSingleFile=true -p:PublishTrimmed=true -p:PublishReadyToRun=true --self-contained true 用于 .NET 的 Microsoft (R) 生成引擎版本 16.9.0-preview-21103-02+198f3f262 版权所有(C) Microsoft Corporation。保留所有权利。 正在确定要还原的项目… 所有项目均是最新的,无法还原。 你正在使用 .NET 的预览版。请查看 https://aka.ms/dotnet-core-preview net6 -> D:\Project\net6\bin\Debug\net6.0\win-x64\net6.dll 正在优化程序集的大小,这可能更改应用的行为。请务必在发布后进行测试。请参阅: https://aka.ms/dotnet-illink net6 -> D:\Project\net6\bin\Debug\net6.0\win-x64\publish\ PS D:\Project\net6> D:\Project\net6\bin\Debug\net6.0\win-x64\publish\net6.exe Hello World! PS D:\Project\net6> dir .\bin\Debug\net6.0\win-x64\publish\ 目录: D:\Project\net6\bin\Debug\net6.0\win-x64\publish Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2021/2/3 星期三 4:11  mscordaccore.dll -a---- 2021/2/20 星期六 11:18  net6.exe -a---- 2021/2/20 星期六 11:05 9404 net6.pdb 

只使用PublishTrimmed参数,20MB 10.8MB。

PS D:\Project\net6> dotnet publish -r win-x64 -p:PublishSingleFile=true -p:PublishTrimmed=true --self-contained true 用于 .NET 的 Microsoft (R) 生成引擎版本 16.9.0-preview-21103-02+198f3f262 版权所有(C) Microsoft Corporation。保留所有权利。 正在确定要还原的项目… 所有项目均是最新的,无法还原。 你正在使用 .NET 的预览版。请查看 https://aka.ms/dotnet-core-preview net6 -> D:\Project\net6\bin\Debug\net6.0\win-x64\net6.dll 正在优化程序集的大小,这可能更改应用的行为。请务必在发布后进行测试。请参阅: https://aka.ms/dotnet-illink net6 -> D:\Project\net6\bin\Debug\net6.0\win-x64\publish\ PS D:\Project\net6> dir .\bin\Debug\net6.0\win-x64\publish\ 目录: D:\Project\net6\bin\Debug\net6.0\win-x64\publish Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2021/2/3 星期三 4:11  mscordaccore.dll -a---- 2021/2/20 星期六 11:22  net6.exe -a---- 2021/2/20 星期六 11:05 9404 net6.pdb PS D:\Project\net6> D:\Project\net6\bin\Debug\net6.0\win-x64\publish\net6.exe Hello World! PS D:\Project\net6> 

最后:.NET6的重点当然不是PublishSingleFile,如果是小工具还是go有优势。 单文件与go已经没啥差别了。

参考:https://docs.microsoft.com/zh-cn/dotnet/core/deploying/single-file

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226553.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:38
下一篇 2026年3月16日 下午10:38


相关推荐

  • 测试集(2)-words

    测试集(2)-words aa.ma.mabandonabandonabattoirabilityabilityableableabnormalabnormalaboardaboardaboutaboutaboveaboveabracadabraabroadabroadabsenceabsenceabsentabsent

    2022年7月21日
    22
  • 启动、关闭、重启Docker

    启动、关闭、重启Docker启动 systemctlsta 关闭 systemctlena 重启 systemctlres

    2026年3月18日
    2
  • java是面向对象还是面向过程_Java面向对象编程和面向过程编程的区别[通俗易懂]

    java是面向对象还是面向过程_Java面向对象编程和面向过程编程的区别[通俗易懂]Java面向对象编程和面向过程编程的区别本章节目标:了解面向对象,知道类和对象的区别,会进行类的定义。知识框架:Java面向对象编程和面向过程编程的区别“面向过程”(ProcedureOriented)是一种以过程为中心的编程思想,简称OP。“面向过程”也可称之为“面向记录”编程思想,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。所以面向过…

    2022年7月8日
    21
  • linux 命令行 查找文件_grep命令查找文件

    linux 命令行 查找文件_grep命令查找文件一grep:查看文件内容,在文件中查询一个关键字,即搜索字符串的命令(在指定的文件中搜索符合条件的字符串)grep是包含匹配,不是完全的精确匹配,特别适合查找内容语法:grep[-option]需要搜索的关键字文件名参数:-n—-连行号一起显示-c—-统计有几行-i—-忽略大小写(一般用的少)-v—-排除指定的字符串(了解),取反,查找出来的内容是搜索条件以外的所有的内容例如:[root@localhostTEST~]#grep-n

    2022年8月24日
    8
  • 使用 data-* 属性来嵌入自定义数据:

    使用 data-* 属性来嵌入自定义数据:

    2021年10月31日
    50
  • ES-Elasticsearch数据库查询[通俗易懂]

    ES-Elasticsearch数据库查询[通俗易懂]ES增删改查一:结构操作1.查询对应索引的表结构GETbiz_commission_book2.创建表复制代码PUTcfg_send_sku{“settings”:{“number_of_shards”:5,“number_of_replicas”:1},”mappings”:{“cfg_send_sku”:{“properties”:{“obdCode”:{

    2022年6月13日
    127

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号