Visual Studio 2012 C#项目中的非托管DLL - 构建后的DllNotFoundException

时间:2013-05-07 14:30:27

标签: visual-studio visual-studio-2012

我使用“添加现有文件”在项目 OldTesters 中添加了一个未管理的dll。 我还设置了BuildAction = Content和复制到输出目录=复制如果更新。 我通过 [DllImport(“unamanged.dll”)

在OldTesters项目中使用非托管dll中的一些函数

OldTesters 是我在主项目中使用“添加引用”引用的.NET项目。

问题是当我重建应用程序时一切正常,但随后我关闭应用程序, 然后点击开始,它会抛出 DllNotFoundException

  

无法加载DLL'unmanaged.dll':找不到指定的模块。 (HRESULT异常:0x8007007E)

我注意到Visual Studio从bin目录中删除了unmanaged.dll。

如果我重建OldTesters项目,那么它将起作用。但总是重建OldTesters很烦人,因为我没有在该项目中添加任何更改。为了证明这一点,如果我点击Build,我会得到:

  

==========构建:0成功,0失败,6最新,0跳过==========

因为项目没有变化。当我运行应用程序时,我得到了同样的例外。

1 个答案:

答案 0 :(得分:0)

尽管这已经很老了,但我偶然发现了相同的问题,并找到了以下解决方案: 只需将所有“删除”的dll复制到VS中的当前项目中,然后在创建此项目时将它们复制。 因此,在您的情况下,您只需打开项目OldTesters,单击非托管dll,复制,然后将其粘贴到与其他项目相同的项目中即可。