纯托管的SQLite NET封装程序

3
我正在寻找一个纯管理的SQLite封装器。我相信几年前曾经有一个,但无论我从NuGet中尝试使用什么,似乎都依赖于“SQLite.Interop.dll”——这正是我想要摆脱的。
我尝试过:https://www.nuget.org/packages/System.Data.SQLite.MSIL/,但它也依赖于“SQLite.Interop.dll”,这让人惊讶,因为NuGet未向项目添加“SQLite.Interop.dll”。
此外,我尝试了https://www.nuget.org/packages/Csharp-Sqlite/,但它无法打开我的数据库(“不支持的格式”)。
最后,https://www.nuget.org/packages/sqlite-net/依赖于“sqlite3.dll”。

这个纯托管的包装器会包装什么? - C.Evenhuis
据我所知,目前没有这样的库(至少没有完整且持续维护的)。如果您能解释一下为什么需要这样的库,或者您试图解决什么问题,那可能会有所帮助。也许有其他方法可以达到您的目的。 - Mike W.
1个回答

1

SQLite是一种用C语言编写的库。

要获得一个纯托管的SQLite,您需要完全重新实现所有的SQLite功能。 (Csharp-Sqlite尝试过这样做,但已经过时且不完整。)


据我所知,旧的System.Data.Sqlite v1.0.66也会出现这种情况,但现在太老了。无法读取我的数据库文件。以前可以有一个纯托管库,但显然现在没有任何项目在维护它。 - wpfwannabe
1
@wpfwannabe 我知道他们曾经发布过“混合模式”程序集,即一个同时包含托管代码和非托管代码的单个dll。我认为他们从未将整个库转换成.NET。 - C.Evenhuis
1
原因是我想将应用程序作为单体 EXE 分发。所有被引用的程序集都将被嵌入为资源并在运行时解决。不幸的是,这种方法仅适用于纯托管程序集。混合模式程序集或本地 DLL 无法以这种方式加载。我已经解决了这个问题,并会另外发布一个解决方案。 - wpfwannabe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接