我开发了一个对.Net 程序瘦身的工具,可以把被引用但是没有被使用的程序集删除。我用它把一个.Net core 程序从147兆瘦身到59.5兆。

net 中發布程式的時候有對程式集進行剪裁的功能,但是那個功能只能做靜態檢查。比如我們的項目使用了 a 程式集,a 程式集中的類有 m1、m2 兩個方法,m1 方法中又調用了 b 程式集的代碼,m2 方法中調用了 c 程式集的代碼。如果我們的程式中只調用了 m1 方法,而沒有調用 m2 方法,那麼用.net 的剪裁是不能把沒有被調用的 m2 方法中的調用的 c 程式集剪裁掉的。
我的這個工具可以做運行時檢查,會把在運行時完全沒有被調用(會考慮到反射等動態機制)的程式集刪除掉。. net 中發布程式的程式集剪裁功能也不支持 winform、wpf 項目。
我的這個工具的實現原理並不複雜,但是我找了一圈都沒有找到類似軟體,所以就自己寫了一個。大家如果知道有這樣的工具,請告訴我,如果確認這是我的首創的話,我會把這個軟體完善(測試各種項目和.net 版本以及各個作業系統的兼容性)後發布並開源。
如果這個項目開源的話,我會發布到我的自媒體,各位朋友可以關注我的嗶哩嗶哩、今日頭條、抖音、微博、油管等頻道,頻道名都是“楊中科”。
原文作者:楊中科
原文連結:https://mp.weixin.qq.com/s/B7QdVQWtgBKNKOEFj2Lg4g