无法加载文件或程序集..即使它位于正确的位置并且构建良好

问题描述 投票:0回答:2

我有一个主要托管的 c# .net 4.6 应用程序,它试图调用 c++ dll(也是作为解决方案的一部分构建的)Visual Studio 2017。

我得到这个例外: “System.IO.FileNotFoundException:‘无法加载文件或程序集‘XXX.dll’或其依赖项之一。找不到指定的模块。’”

似乎没有更多信息了。该 dll 位于我们的二进制文件目录中,其中包含加载良好的所有其他 dll,以及在调试会话中运行的 exe(启动项目)。

我已经检查了解决方案配置管理器,它在我们的调试|任何 CPU 配置中将 dll 构建为 x64,这是有道理的。

办公室里没有其他人有这个问题,我的旧计算机上也没有这个问题(我现在正在尝试设置我的新开发计算机,它的规格与旧计算机完全相同)Windows 10.

我安装了 WindowsSDK 8.1 和 10,并且重新分发了 vs c++。

有什么想法吗?或者至少,想想我如何才能获得有关实际问题的更多信息? (这个例外是令人沮丧的模糊)。

c# c++ visual-studio dll
2个回答
1
投票

您需要使用 Fuslogvw.exe,程序集绑定日志查看器。可以通过启动 VS 的开发人员命令提示符来启动它。首先是启用日志记录,最简单的方法是以管理员身份运行(正如对答案的评论here正确指出的那样);如果作为常规用户帐户运行,您也可以设置此处指定的ForceLog注册表键。

还有一个我不久前制作的小视频来测试它是如何工作的。您可以在这篇文章中找到它。只需滚动到底部,它就在从末尾开始的第二个问题内。

如果这不起作用,请运行 Process Monitor 并为您的特定 .dll 设置过滤器,然后查看 CLR 在搜索它时详细执行的操作。


0
投票

就我而言,VS 项目引用有些混乱。该项目参考有一个!在它上,当我通过按删除键删除它时,!走了,它起作用了!

© www.soinside.com 2019 - 2024. All rights reserved.