【发布时间】:2011-10-07 22:31:17
【问题描述】:
我遇到了一些我在工作中继承的代码的奇怪情况。他们的应用程序是一个多项目解决方案,其中几个解决方案是 MS 企业库的(代码)片段(不确定哪个版本)。
他们还有一个现有的 C++(非托管)应用程序,其中包含一堆 DLL。其中一个 DLL 构建在单独的解决方案中,包括 64 位和 32 位版本。
主应用程序引用了这个 DLL,并调用了几个静态函数(我甚至可以看到智能感知)。我可以编译和构建主应用程序 EXE,但是当我运行它时,我得到一个异常,即来自非托管代码的这个 DLL(我们称之为 CPlusPlusCode.dll 找不到:
未处理 FileNotFound 异常:无法加载文件或程序集“CPlusPlusCode.dll”或其依赖项之一。找不到指定的模块。
我很困惑,因为我可以编译代码,查看导入类的智能感知,并在对象浏览器中挖掘 DLL。我什至确保在 \bin\Debug 文件夹中有一个副本(尽管我不明白为什么会有所作为)。这是针对 Windows 窗体应用程序的。
另外,如果重要的话,我在不同项目中遇到了一些与 x86 和 x64 相关的构建问题;我认为(希望?)这与此无关,但我通过使用配置管理器将所有内容构建为 x64 解决了这个问题。
【问题讨论】:
-
我没有调用堆栈;我在堆栈上看到的只是
[External Code] -
or one of its dependencies。如果您不知道它在寻找什么 DLL,请使用 SysInternals 的 ProcMon。
标签: c# dll desktop-application