2016-05-24 54 views
1

我正在寻找一个纯管理SQLite包装。我相信几年前曾经有过一次,但无论我尝试过NuGet,似乎取决于SQLite.Interop.dll--这正是我想要摆脱的。纯托管SQLite NET包装

我尝试过:https://www.nuget.org/packages/System.Data.SQLite.MSIL/,但它也取决于SQLite.Interop.dll,这是令人惊讶的,因为没有SQLite.Interop.dll被NuGet添加到项目中。

此外,我试图https://www.nuget.org/packages/Csharp-Sqlite/,但这一个未能打开我的数据库('不支持的格式')。

最后但并非最不重要的,https://www.nuget.org/packages/sqlite-net/取决于sqlite3.dll

+0

这个纯管理的包装会包装什么? –

+0

没有任何我知道的。 (至少没有任何内容是完整的和积极维护的。)如果你解释为什么你需要这样一个库,或者你想要解决什么问题,可能会有所帮助。有可能有不同的方式到达那里。 –

回答

0

SQLite是用C写的

为了得到一个纯管理的SQLite库,你将不得不重新实现完全所有的SQLite。 (Csharp-Sqlite试图做到这一点,但是不完整且过时。)

+0

AFAIK,旧的System.Data.Sqlite v1.0.66也这样做了,但现在已经太旧了。无法读取我的数据库文件。它曾经有可能拥有一个纯粹的托管库,但显然目前没有项目维持这一点。 – wpfwannabe

+1

@wpfwannabe我知道他们曾经发布过“混合模式”程序集,一个包含托管代码和非托管代码的dll。我不认为他们曾经把整个库翻译成.NET。 –

+0

原因是我想分发应用程序作为单片EXE。所有引用的程序集都将作为资源嵌入并在运行时解析。不幸的是,这种方法适用于纯粹的托管组件。混合模式程序集或本机DLL无法以此方式加载。我解决了这个问题,并单独发布解决方案。 – wpfwannabe