我开发了一个对.NET程序进行瘦身的工具
生活随笔
收集整理的這篇文章主要介紹了
我开发了一个对.NET程序进行瘦身的工具
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
? ? 我開發了一個對.Net程序瘦身的工具,可以把被引用但是沒有被使用的程序集刪除。我用它把一個.Net core程序從147兆瘦身到59.5兆。
? ? .NET中發布程序的時候有對程序集進行剪裁的功能,但是那個功能只能做靜態檢查。比如我們的項目使用了A程序集,A程序集中的類有M1、M2兩個方法,M1方法中又調用了B程序集的代碼,M2方法中調用了C程序集的代碼。如果我們的程序中只調用了M1方法,而沒有調用M2方法,那么用.NET的剪裁是不能把沒有被調用的M2方法中的調用的C程序集剪裁掉的。
我的這個工具可以做運行時檢查,會把在運行時完全沒有被調用(會考慮到反射等動態機制)的程序集刪除掉。.NET中發布程序的程序集剪裁功能也不支持WinForm、WPF項目。
? ? 我的這個工具的實現原理并不復雜,但是我找了一圈都沒有找到類似軟件,所以就自己寫了一個。大家如果知道有這樣的工具,請告訴我,如果確認這是我的首創的話,我會把這個軟件完善(測試各種項目和.NET版本以及各個操作系統的兼容性)后發布并開源。
? ? 如果這個項目開源的話,我會發布到我的自媒體,各位朋友可以關注我的嗶哩嗶哩、今日頭條、抖音、微博、油管等頻道,頻道名都是“楊中科”。
總結
以上是生活随笔為你收集整理的我开发了一个对.NET程序进行瘦身的工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C# 日志管理框架:Common.Log
- 下一篇: C# WPF中添加调试信息查看窗体