我使用“添加现有文件”在项目 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跳过==========
因为项目没有变化。当我运行应用程序时,我得到了同样的例外。
答案 0 :(得分:0)
尽管这已经很老了,但我偶然发现了相同的问题,并找到了以下解决方案: 只需将所有“删除”的dll复制到VS中的当前项目中,然后在创建此项目时将它们复制。 因此,在您的情况下,您只需打开项目OldTesters,单击非托管dll,复制,然后将其粘贴到与其他项目相同的项目中即可。