2011-10-07 84 views
1

当我有我继承工作的一些代码,一个奇怪的局面。他们的应用程序是一个多项目解决方案,其中一些解决方案是(代码)MS企业库(不知道哪个版本)。参考DLL不能找到运行的应用程序

他们还有一个现有的C++(非托管)应用程序,它有一堆DLL。其中一个DLL内置在一个单独的解决方案中,都是64位和32位的。

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

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

我很为难,因为我可以编译代码,看到智能感知为导入类,并挖到对象浏览器中的DLL中,我甚至确信在\ bin \ Debug文件夹中有一个副本(尽管我不明白为什么这会有所作为),这是针对Windows Forms应用程序的。另外,如果它很重要,我有一些与x86和x64有关的不同项目的构建问题;我想(希望?),这与此无关,但我通过使用配置管理器将所有东西都构建为x64解决了这个问题。

+0

我没有调用堆栈;我在堆栈中看到的所有内容都是'[External Code]' – ashes999

+1

'或它的一个依赖项'。如果您不知道要查找的DLL,请使用SysInternals的ProcMon。 –

回答

0

检查GAC,并在必要时,你可能需要添加它或注册DLL那里。

+0

如果我的DLL与可执行文件位于相同的路径中,为什么还不够? – ashes999

+0

那么你的程序找不到该文件,你是否将x86和x64文件放在文件夹中? –

+0

@Ramhound我没有。我假设由于引用的DLL是x64,我只需要将x64放在文件夹中。如果他们有相同的名字,我怎么能把它们放在一起? – ashes999

0

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

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

+0

也许你可以扩大一点,提什么检查,什么我要找的具体步骤;我对细节有点遗憾。 – ashes999

相关问题