We are currently working on a multi-platform app (targeting Android, iOS and Windows) and using the nuget package ServiceStack.OrmLite.Sqlite.Data for sqlite database access on all platforms. ServiceStack.OrmLite.Sqlite.Data references the nuget package Microsoft.Data.Sqlite which includes a SQLite implementation to use - via SQLitePCLRaw.bundle_e_sqlite3.
While that worked fine for us so far, we now have the need to provide our own SQLite implementation (i.e. with encryption support) and cannot rely on the included sqlite library any longer. In fact, if we include another SQLite package (like SQLitePCLRaw.bundle_e_sqlcipher) and now build for iOS via a Mac, we get the following build error:
As you can see, we now run into colliding sqlite symbol declarations due to the fact that both bundle_e_sqlcipher and bundle_e_sqlite3 is used.
Thus, my question is if it would be possible for ServiceStack to offer a nuget package like ServiceStack.OrmLite.Sqlite.Data - except that this one will reference Microsoft.Data.Sqlite.Core instead of Microsoft.Data.Sqlite. Microsoft.Data.Sqlite.Core does not include any SQLite (no SQLitePCLRaw bundle included).
This is, for example, offered by EntityFrameworkCore where the nuget package Microsoft.EntityFrameworkCore.Sqlite.Core does not dictate the SQLite library used. Using that nuget package it is up to the developer to provide the SQLite library to use.
Can something similar also be offered by ServiceStack? Or if that is not possible, how should we best proceed here?