首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到DLL :引用从属DLL

找不到DLL :引用从属DLL
EN

Stack Overflow用户
提问于 2011-09-07 03:10:41
回答 2查看 5.9K关注 0票数 1

我正在尝试实现一个在C#窗体应用程序中使用英特尔性能原语的C++动态链接库(由我自己创建)。我得到一个"DLL找不到异常“,当我试图运行该程序。在本站点的其他帖子中提出的一个可能的原因是,必须引用依赖的DLL,事实上,在下载DpendencyWalker后,我发现我的DLL使用"IPPS-7.0.DLL“。

我的问题是我不清楚如何引用这些依赖的DLL。我已经将包含IPPS-7.0.DLL的文件夹添加到引用路径中,并添加了对"IntelCppOptPkg“和"IntelLibOptPgk”程序集的引用,但这并没有解决问题。

那么,我认为这就是问题所在,对吗?如果是这样,如何在托管代码中引用特定的DLL?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2011-09-07 03:32:08

你不需要引用它们,它们不是.NET程序集。您只需确保将DLL复制到您的build目录。最简单的方法是使用Project + Add Existing Item,从复制的位置选择DLL。然后选择添加的文件,并在Properties窗口中设置Build Action = Content,Copy to Output Directory = Copy if newer。顺便说一句,在源代码管理中签入DLL通常是一个好主意。

票数 2
EN

Stack Overflow用户

发布于 2011-09-07 03:28:27

托管代码不能像引用托管程序集一样引用非托管dll。托管引用实际上更改了程序集的元数据:

编译器在生成时在程序集清单的元数据中记录静态引用。..。引用程序集的首选方法是使用完整引用,包括程序集名称、版本、区域性和公钥标记(如果存在)。

原生.NET根本没有与之关联的dlls元数据。必须在构建后步骤或部署过程中手动复制它们。有一个workaround,但我不认为它会工作,如果你的托管应用是平台独立的(任何CPU),并且你有x86和x64版本的非托管dll。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7324881

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档