我正在为第三方本机库编写一个C#包装器,我们将其作为DLL。我希望能够为新程序集分发一个DLL。我可以在我的.NET DLL中嵌入win32 DLL,还是使用P / Invoke调用它吗?如果是这样,怎么样?
答案 0 :(得分:2)
如果本机dll没有任何依赖项,应该可以工作。
您可以在嵌入式资源中编译dll,而不是从代码中访问流,将其序列化到临时文件夹并从那里使用它。
在这里发布示例代码太多了,但方法并不复杂。
答案 1 :(得分:2)
我从来没有这样做但我知道一个开源项目就是这样做的。他们使用自己的名为mergebin的工具将原生SQLite3代码嵌入到托管SQLite程序集中。
去查看SQLite project for .NET by PHX并获取源代码,您可以看到它是如何完成的。
答案 2 :(得分:1)
我认为你不能直接这样做,但是可以在运行时将它提取到某个临时位置并调用该副本。