HTML5技术

.NET Core 2.0应用程序大小减少50% - LineZero

字号+ 作者:H5之家 来源:H5之家 2017-09-06 08:05 我要评论( )

.NET Core 2.0应用程序减小体积瘦身官方工具IL Linker。 IL Linker 来源于mono的linker https://github.com/mono/linker,目前还是预览版本。 在一般的情况下,链接器可以将应用程序的大小减少50%,大型应用程序的大小可能更有利,链接器会删除应用程序中的

 .NET Core 2.0应用程序减小体积瘦身官方工具 IL Linker。

 IL Linker 来源于mono的linker  https://github.com/mono/linker,目前还是预览版本。

在一般的情况下,链接器可以将应用程序的大小减少50%,大型应用程序的大小可能更有利,链接器会删除应用程序中的代码和依赖库,而这些代码不会被任何代码路径访问。它实际上是应用程序特定的无效代码分析

下面正式开始体验

版本必须为.NET Core 2.0

新建应用

新建一个控制台应用

dotnet new console -o linkdemo

然后添加nuget.config

dotnet new nuget

接着在config 中加入 <add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" /> 如下:

<?xml version=encoding=?> <configuration> <packageSources> <!--LineZero --> <clear /> <add key=value=/> </packageSources> </configuration>

添加ILLink 程序包

dotnet add package ILLink.Tasks -v 0.1.4-preview-906439

最新版本可以到https://dotnet.myget.org/feed/dotnet-core/package/nuget/Illink.Tasks 查看

发布程序

  • dotnet publish -c release -r <RID> -o out
  • <RID> 以下值可用 win-x64, win-x86, linux-x64, osx-x64
  • win10 包含linker的发布

    dotnet publish -c release -r win10-x64 -o linker

    不包含linker

    dotnet publish -c release -r win10-x64 -o nolinker /p:LinkDuringPublish=false

    都可以成功执行。

    我们看看体积大小。

     

     基本上减小50%以上,文件减少2/3 。

  • /p:LinkDuringPublish=false - 禁用链接器。
  • /p:ShowLinkerSizeComparison=true - 显示应用程序大小缩小的列表。
  • 显示程序缩小列表

    dotnet publish -c release -r win10-x64 -o linker /p:ShowLinkerSizeComparison=true

     

    真正意义上的.NET Core 瘦身。

    注意事项:

    参考文档:https://github.com/dotnet/core/blob/master/samples/linker-instructions.md

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • ASP.NET Core MVC – Tag Helper 组件 - Sweet-Tang

      ASP.NET Core MVC – Tag Helper 组件 - Sweet-Tang

      2017-09-01 17:02

    • .NET Core 在程序集中集成Razor视图 - Savorboard

      .NET Core 在程序集中集成Razor视图 - Savorboard

      2017-09-01 11:01

    • .NET跨平台实践:Linux .Net Core自宿主应用程序瘦身记 - 宇内流云

      .NET跨平台实践:Linux .Net Core自宿主应用程序瘦身记 - 宇内流云

      2017-08-27 10:00

    • .Net高级进阶,教你如何构建企业模型数据拦截层,动态控制字段验证 - 小曾看世界

      .Net高级进阶,教你如何构建企业模型数据拦截层,动态控制字段验证 -

      2017-08-25 17:00

    网友点评
    p