运行应用程序时找不到引用的DLL

时间:2011-10-07 14:16:20

标签: c# dll desktop-application

我有一些奇怪的情况,我在工作中继承了一些代码。他们的应用程序是一个多项目解决方案,其中几个解决方案是MS Enterprise Library的(代码)部分(不确定是哪个版本)。

他们还有一个现有的C ++(非托管)应用程序,它有一堆DLL。其中一个DLL构建在一个单独的解决方案中,包括64位和32位版本。

主应用程序有一个对这个DLL的引用,并调用几个静态函数(我甚至可以看到intellisense)。我可以编译和构建主要的应用程序EXE,但是当我运行它时,我得到一个异常,即来自非托管代码的这个DLL(让我们称之为CPlusPlusCode.dll无法找到:

  

FileNotFound异常未处理:无法加载文件或程序集“CPlusPlusCode.dll”或其某个依赖项。找不到指定的模块。

我很难过,因为我可以编译代码,查看导入类的intellisense,并在对象浏览器中挖掘DLL。我甚至确保在\ bin \ Debug文件夹中有一个副本(虽然我不明白为什么会产生影响)。这适用于Windows窗体应用程序。

另外,如果重要的话,我有一些与x86和x64相关的构建问题,用于不同的项目;我认为(希望?)这与此无关,但我通过使用Configuration Manager将所有内容构建为x64来解决这个问题。

2 个答案:

答案 0 :(得分:0)

检查GAC,如有必要,您可能需要添加它或在那里注册DLL。

答案 1 :(得分:0)

我在项目中遇到了这个问题,它在Visual Studio中运行正常,而且我的大部分时间都是在我的机器上本地运行项目。但由于非托管代码,我需要特别允许以正确的权限级别执行项目。

所以看看清单文件,存在足够的权限等。