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



我使用添加现有文件在项目OldTesters中添加了一个未管理的dll。我还设置了BuildAction = Content和Copy到Output Directory = Copy如果更新。我通过[DllImport("unamanged.dll")]在OldTesters项目中使用一些来自非托管dll的函数

OldTesters是我在主项目中使用Add Reference引用的。net项目。

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

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

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

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

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

,因为项目中没有更改。当我运行应用程序时,我得到同样的异常

虽然这是非常古老的,我只是偶然发现了同样的问题,并找到了以下解决方案:只需将所有被"删除"的dll复制到VS中的当前项目中,然后在创建该项目时复制它们。所以在您的情况下,您只需打开项目OldTesters,点击非托管dll,复制并粘贴到您的其他项目的项目中。

最新更新