2016-04-28 447 views
4

我的C++ DLL(从C#应用程序调用)与Debug版本(调试中的主C#应用程序)正常工作,但发布版本(发布中的主C#应用程序)给出无法找到指定的过程。 (来自HRESULT的异常:0x8007007F)] System.DllNotFoundException:无法加载DLL'D:\ TestBluRay.dll':无法找到指定的过程。 (来自HRESULT的异常:0x8007007F)错误。我已验证所有项目设置,并且这些设置对于调试和发布都是相同的。任何想法为什么这只发布版本失败?找不到指定的过程。 (从HRESULT异常:0x8007007F)

+0

你的意思是(1)使用调试版本的C++ DLL在使用发行版本成功时失败,或(2)在使用发行版本成功时使用C#应用程序的调试版本失败? –

+0

发布版本有可能是因为某种原因实际上看到了较旧版本的DLL吗?例如,由于意外将DLL文件复制到调试版本的文件夹中? (一种容易犯的错误...) –

+0

同意上述评论者。具体来说,我会检查你所引用的DLL出现在bin/debug文件夹中,也是bin/release文件夹中的一个副本。最有可能的是,它不是,或者完全没有。 此外,请编辑您的问题,并向我们展示完整的错误,如显示。 ;) – gravity

回答

0

验证.DLL是否存在,并在\ bin \ debug(工作)和\ bin \ release(这是失败)之间完全保持最新。

很可能,.DLL需要重新编译,或者只需要复制,如果它是第三方库。

编辑:您的错误表明该文件可能完全丢失(DllNotFoundException),或者您引用的是路径/目录而不是完全限定的路径名​​。 “\ Drivers \ Blu_ray ..”不是完全合格的路径名,其中“C:\ Windows \ System32 \ Drivers \ Blu_ray ..”等,是完全合格的路径名。

我的猜测是,\ BIN \发布\没有\ DRIVERS \ blu_ray,而\ BIN \调试\可能确实有\ DRIVERS \ blu_ray ...

相关问题