2011-01-31 69 views
1

什麼是最簡單的方法來發現哪個程序集正在觸發某些依賴性,以便在運行時加載?我在某個地方有一個零散的對舊程序集的引用,在我們的應用程序的一部分被加載的100多個程序集之一中。發現哪些程序集正在加載哪些依賴關係(運行時)

使用FUSLOGVW我可以看到正在加載的舊程序集 - 但日誌不告訴我哪個程序集導致它加載。我使用CheckASM,它允許我瀏覽主要程序集的依賴關係,並向下瀏覽樹 - 但這些都很好。

所以它必須是一個在運行時動態加載的程序集或某個配置文件。但我無法爲我的生活找到它。

想知道是否有更聰明的方法來做到這一點?

回答

1

也許你可以訂閱AssemblyResolve事件在所有的應用程序域(如果沒有太多)。 ResolveEventArgs包含此特殊字段 - ResolveEventArgs.RequestingAssembly

+0

是的,只需刪除DLL即可觸發事件。看看調用堆棧,看看它是如何調用的。 – 2011-01-31 20:32:47

1

如何刪除(或重命名)程序集以查看在程序嘗試加載它時是否引發異常?堆棧跟蹤應包含對調用程序集中方法的引用。

+0

謝謝馬克,這是戰鬥的一半! – 2011-02-01 10:33:01

相關問題