2017-06-06 72 views
1

我收到「找不到文件」。來自我正在使用的.DLL的消息,但我不確定它試圖找到該文件的路徑。它可能是硬編碼的,我想知道。是否可以看到.DLL正在搜索文件的位置?

有什麼方法或工具可以使用嗎?

預先感謝您

+0

這是你的dll,還是你無法訪問其源代碼的第三方組件? –

回答

4

Process Monitor將做到這一點外的現成你。下載,解壓縮並運行exe文件。它應該立即告訴你哪些進程試圖訪問哪些文件。

要應用過濾器,按Ctrl + L(或單擊頂部菜單中的「過濾器」圖標)。然後選擇「進程名稱是xxx」,其中xxx是進程的名稱。然後點擊「添加」,然後點擊「確定」。這將過濾到您的過程。

您也可以使用查找(按Ctrl + F)找東西。

另一個提示,通過單擊Ctrl + E停止並開始捕獲。

+0

Process Monitor比Process Explorer更好地識別文件訪問 - 這是比我更好的答案。 –

+1

如果包含有關如何在Process Monitor中使用過濾的說明,此答案會更好,因爲默認情況下會產生大量輸出。 – Polyfun

+0

同意Polyfun,但確實這個工具在我的情況下更有用。 謝謝大家的回答,我可以從這裏拿下來。祝你有美好的一天! – Sindorej

3

使用Process Explorer嘗試。來自頁面:

有沒有想過哪個程序打開了某個文件或目錄? 現在你可以找到。 Process Explorer向您顯示有關 的信息,這些句柄和DLL進程已打開或加載。

如果碰到Ctrl + D(顯示DLL視圖 - 也可以從查看菜單中進行),然後選擇你的過程中,它會顯示所有通過該進程和它們的位置加載的DLL的。

你也可能得到有用的答案,詢問在Software Recommendations

+0

「Stack Overflow是專業和發燒友程序員的問答網站,由您作爲Stack Exchange交換網絡Q&A網站的一部分構建和運行。在您的幫助下,我們正在共同構建一個詳細答案庫關於編程的每一個問題。「 https://stackoverflow.com/tour 我認爲這資格。 – Sindorej

+0

您正在尋求軟件推薦 - 我只是想讓您知道,您可能會在軟件推薦網站獲得更好的答案,並且我已經看到諸如此類的許多問題被作爲「脫離主題」而關閉。 –

+0

是的,謝謝你的回答,儘管我正在尋找一種方法或工具,但我並不是在尋找軟件,因爲我不知道解決方案是什麼。這可能是因爲我可以在Visual Studio中調試它或者在Visual Studio中看到它,或者調用在加載時廣泛調試它的命令。 – Sindorej

1

看到這裏https://blogs.msdn.microsoft.com/suzcook/2003/05/29/debugging-assembly-loading-failures/

可能是安裝在GAC DLL中的問題。

像整形器一個工具給這些情況的更多信息,你可以嘗試也http://www.dependencywalker.com/

+0

謝謝你的回答,但是DLL加載正常,它只是試圖找到一個不存在的配置文件(在它看起來的位置)。 – Sindorej

+0

不客氣。:)然後嘗試resharper,它修復了依賴關係問題。使用試用版。 – Coding4Fun

相關問題