P/Invoke和用户期望的本机DLL解析

本文关键字:本机 DLL 解析 期望 用户 Invoke | 更新日期: 2023-09-27 18:26:02

我编写了一个.NET程序集,它使用p/Invoke来公开本机第三方库的功能。但是,我不会随程序集一起分发此库。这意味着用户有责任通过所需的任何方式提供图书馆。这就引出了我的问题:

作为在这种情况下有经验的库作者或该程序集的潜在用户,在这种用例中,用户对解决DLL位置的一些常见期望是什么?

  • 默认的Windows DLL搜索顺序足够吗?"如果它爆炸了,它就爆炸了。他们应该阅读文件。"
  • 我应该在运行时自动将%PATH%扩展到常见的库安装位置以尝试找到它,还是至少增加机会?我不是一个真正的粉丝,因为我们在幕后改变状态
  • 我是否应该提供某种形式的配置设置,允许用户指定位置,然后手动调用LoadLibrary

P/Invoke和用户期望的本机DLL解析

根据评论,用户是开发人员:

我会按照惯例而不是配置。。。基本上默认的Windows DLL搜索顺序。。。加上用于需要配置的情况的配置设置。。。如果配置了该设置,则优先。。。