我有一捆輔助方法打包到一個自己的類別庫中(即Tools.dll)。當我啟動一個新專案時,我幾乎每次都會參考這個庫。 當Visual Studio編譯我的新專案時,我在bindebug-檔案夾中得到了一堆檔案。當然有 "mynewproject.exe "和 "Tools.dll",但由于輔助方法有自己的參考,我還發現了 "HtmlAgilityPack.dll","Scintilla.dll "等,不管我是否真的使用了其中的一些功能。 我的問題是:我可以把它們去掉嗎? 如果Visual Studio可以自己過濾掉它們,那太好了,如果我必須在運行時手動操作,你能給我一個主意嗎?
我做了很多研究,但我找不到一種方法來分析哪些dlls被使用,或者在運行時分析哪個方法呼叫了哪個輔助方法。
非常感謝!
。更新說明我的想法。 我的想法是在每次程式啟動時運行一個腳本,檢查有哪些 dll 檔案,然后在所有方法中遞回運行,查看哪些檔案是真正需要的。然后我就可以洗掉那些未使用的dll檔案。如果這個腳本需要很長的時間,我可以另外添加一個標志,這樣這個腳本只需要在每次編譯后運行一次。
如果有人有更好的主意,我當然很感興趣:)
。uj5u.com熱心網友回復:
如果你想知道哪些dlls在運行時被使用,也許你可以使用Reflection.
。foreach (var item in Assembly.GetExecutingAssembly() .GetReferencedAssemblies() ) {
Console.WriteLine(item)。
}
CodePudding
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/309165.html
標籤:


