2010-04-20 43 views
1

我正在「檢測」(更像是列出)我們應用程序的所有依賴關係的過程。檢測應用程序的所有依賴關係

目前,我正在使用depends.exe(Dependency Walker)來檢測所有的文件依賴關係。

我實際上能夠通過關於缺少文件和依賴關係的所有錯誤消息。但是,啓動應用程序時,我所得到的只是一個沒有任何消息的崩潰。

在「工作」配置/系統上,我能夠成功啓動此應用程序。殺死某個服務會產生「崩潰」的行爲。這使我得出這樣的結論:應用程序需要此服務的SOMETHING,並且此服務是依賴項。但是,depend.exe將無法「檢測」此依賴項。

我的問題是:是否有一個應用程序可以以編程方式檢測依賴項,如數據庫和服務?

謝謝!

回答

2

依賴Walker無法檢測到動態加載的DLL的依賴關係。您可以使用Process Monitor來查找您的程序實際嘗試查找哪個DLL。

+0

絕對procmon是攻擊這個問題的方法。 不要忘記它可能依賴於已註冊的COM對象和註冊表項。 – glob 2010-04-20 11:20:57

+0

不要忘記Dependency Walker中的「Profile」命令,以查看運行時加載的DLL。 – Zamboni 2010-05-17 15:55:43

0

取決於您如何定義「依賴關係」。你可以(也許使用被黑的版本fabricate),確定你的應用程序依賴的'文件'(dll等)。

0

您需要PE Explorer及其Delay Import Viewer才能查看鏈接的延遲加載庫列表。

+0

這些也不會在depends.exe中出現嗎? – 2010-05-17 18:56:46