I've been using this sqlite wrapper for years now, as its simply wonderful to work with.
On mono, I've been using the ManagedOnly version. I've been providing it with a custom build version of the most recent sqlite3 shared libraries (3.6.22).
I've found that by doing this, I can use the current System.Data.SQLite.dll but have access to newer features of sqlite, such as foreign keys. There may be reasons not to do this, but so far, i haven't found any.
I've done this successfully on mono (under OSX) and tried to do this under MS's .net runtime (3.5) this morning. The basic trick works, use the managed only dll and a new build of sqlite3.dll.
But, and here is where the feature request comes in, this only works if there is no conflicting version of the System.Data.SQLite dll in the GAC. The Managed only version of the dll and the combined dll that gets registered with the GAC when installing appear to be identical, from a strong name perspective, and the runtime refuses to load the local managed only version, as it only does so once it doesn't find one in the GAC.
Of course if a new release of the sqlite.net package is released with newer sqlite3 linked in that would fix the foreign key issue, but there may be other reasons in the future to want to use the system.data.sqlite.dll but provide a custom sqlite3.dll. This currently is only possible if the system.data.sqlite.dll is not installed and registered in the GAC.
To fix this, if the managed only version of the dll had a different version number, (or perhaps a different guid, I don't know what exactly it will take to make the GAC think its different) and this managedonly version was never installed in the GAC, then even on machines with the sqlite.net dll were installed we could always use the managed only versions and a custom sqlite3.dll.
For the time being, ill just wait for the foreign key stuff to get integrated to the official release, but something like what I've proposed above would be a convenient feature for some.
I tried to build my own with a new version number, but I never got it to work quite right. I gave up after very little effort, I was probably just doing something wrong in building the managed only package. The one I built appears to be still looking for the sqlite_* C functions in the .net dll, as if it were the combo version. Like I said, I was probably doing something dumb. I think it should be possible to do it though, pretty easily.