.Net Core独立程序瘦身
起因
.Net Core 2.0发布有半个月的时间,一直没时间看,API数量上来,发布完整包却越来越大了,这里简单介绍一下,如何精简或瘦身独立程序.这次精简程序文件,和以往不同,以往是粗暴的根据修改项目依赖的json,这次是通过分析程序所依赖的引用.分析引用依赖的软件,我知道的有两个.
- WinDbg
- Ollydbg
这两个软件都是神器,这里使用第一个软件,通过附加进程的方式,看一下引用依赖.
这两个软件,分32位和64位,分析64位的程序,一定要使用64位的版本.
打开WinDbg分析引用依赖,要使用管理员权限
这里直接上图了
从上图,得知一个最小的.Net Core就需要这几个动态库文件.
将分析出dll名称的文件,单独放在一个文件内.
修改deps.json文件
找到49行, 也就是".NETCore.App/2.0.0": {"结尾的这一行,该节点下,有runtime和native两个节点,本次简单粗暴的方法,就是改两个节点的所有内容全部注释.然后,在上图分析的dll名称,在deps.json搜索,找到之后,取消该行的注释.结果
分别在win7和win10系统正常运行.程序瘦身前的大小为五十多兆.瘦身后只有15.5兆大小,还是很可以的.现在还需要手动进行瘦身, .Net社区已经在着手做自动化设置,在发布程序的,分析所引用的动态库,移除不需要的动态库.
如何给Linux上,.Net Core程序呢? 可以参考这篇博文.
秋风
2017-09-01