zoukankan      html  css  js  c++  java
  • .NET Core 2.0应用程序大小减少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="1.0" encoding="utf-8"?>
    <configuration>
     <packageSources>
        <!--LineZero -->
        <clear />
        <add key="dotnet-core" value="https://dotnet.myget.org/F/dotnet-core/api/v3/index.json" />
     </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-x64win-x86linux-x64osx-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 瘦身。

    注意事项:

    • 目前只支持发布独立部署应用程序。需要指定运行时ID。
    • 它目前是一个实验功能。我们打算在随后的.NET Core版本中进行支持。
    • 链接仅在发布时发生,因此链接的应用程序需要在发布后进行测试,而不仅仅是在构建之后。
    • 链接器将会破坏使用反射的一些应用程序。请参阅使用IL Linker高级功能

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

  • 相关阅读:
    桥接模式新解:客户端服务器模式
    laravel-admin 自定义导出表单
    PHP实现git部署的方法,可以学学!
    PHP的安全性问题,你能说得上几个?
    nginx的四个基本功能
    laravel orm
    laravel-admin列表排序在使用了$grid->model()->latest()后$grid其它加上sortable()可排序的列在排序时不起作用
    Laravel 5.4: 特殊字段太长报错 420000 字段太长
    关于在phpStudy环境下,windows cmd中 php不是内部命令问题
    phpstudy安装好之后mysql无法启动(亲测可行)
  • 原文地址:https://www.cnblogs.com/linezero/p/7477233.html
Copyright © 2011-2022 走看看