我正在为第三方本机库编写 C# 包装器,我们将其作为 DLL。我希望能够为新程序集分发一个 DLL。我是否可以将 win32 DLL 嵌入到我的 .NET DLL 中,并且仍然使用 P/Invoke 对其进行调用?如果是这样,怎么做?
Simon
问问题
1440 次
3 回答
2
如果本机 dll 没有任何依赖项,则应该可以工作。
您可以将 dll 编译为嵌入式资源,而不是从代码内部访问流,将其序列化到临时文件夹并从那里使用它。
在这里发布示例代码太多了,但方法并不复杂。
于 2008-12-15T11:41:25.623 回答
2
我从来没有做过,但我知道有一个开源项目可以做到这一点。他们使用自己的名为mergebin的工具将原生 SQLite3 代码嵌入到托管 SQLite 程序集中。
去看看PHX 的 .NET 的 SQLite 项目并获取源代码,你可以看到它是如何完成的。
于 2008-12-15T15:22:05.083 回答
1
我认为您不能直接执行此操作,但可以在运行时将其提取到某个临时位置并调用该副本。
于 2008-12-15T11:35:49.003 回答