首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在.NET中指定DllImport的搜索路径

在.NET中指定DllImport的搜索路径
EN

Stack Overflow用户
提问于 2010-05-19 18:34:42
回答 2查看 35.2K关注 0票数 55

有没有办法为使用DllImport导入的给定程序集指定要搜索的路径?

代码语言:javascript
复制
[DllImport("MyDll.dll")]
static extern void Func();

这将在应用程序目录和PATH环境变量中搜索dll。但有时dll会被放在别处。是否可以在app.config或清单文件中指定此信息,以避免动态加载和动态调用?

EN

回答 2

Stack Overflow用户

发布于 2012-05-29 21:35:05

在第一次调用导入的函数之前,请尝试使用附加的DLL路径调用AddDllDirectory

如果你的Windows版本低于8,你将需要安装this patch,它为Windows7、2008 R2、2008和Vista扩展了缺少的AddDllDirectory函数(尽管XP没有补丁)。

票数 15
EN

Stack Overflow用户

发布于 2017-07-29 10:55:38

这可能是有用的DefaultDllImportSearchPathsAttribute Class

例如。

代码语言:javascript
复制
[assembly: DefaultDllImportSearchPaths(DllImportSearchPath.UserDirectories)]

还要注意,你也可以使用AddDllDirectory,这样你就不会搞砸任何已经存在的东西:

代码语言:javascript
复制
[DllImport("kernel32.dll", SetLastError = true)]
static extern bool AddDllDirectory(string path);
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2864673

复制
相关文章

相似问题

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