2017-06-06 38 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

相关问题