Possible bug: Unable to find an entry point
Hardware: Raspberry Pi 3 B+ OS: Debian Bullseye ARMv8 (64 bit) from the DietPi org libSQLite.Interop.dll compiled on above using sqlite-netFx-full-source-184.108.40.206 When running a .net 6 (core) app using System.Data.SQLite.Core 220.127.116.11 the following error is encountered on start: Unable to find an entry point named 'SIa069da76968b7553' in shared library 'SQLite.Interop.dll' When running the same app but with System.Data.SQLite.Core 1.0.115 (previous version) no error is encountered and the app functions normally. It’s unclear to me if this is a bug in 18.104.22.168 or if I’m doing something incorrect. Just throwing it out there in case it is a bug. Thanks.
... the following error is encountered on start: Unable to find an entry point named 'SIa069da76968b7553' in shared library 'SQLite.Interop.dll'
I am highly skeptical that a name like that is supposed to be exported by that DLL. I've seen many name decoration schemes, but never one that appears to encode a 64-bit number with a prefix. And all the names exported by SQLite.Interop.dll for x86 and amd64 platforms are more ordinary, semi-meaningful-to-humans identifiers.
Do you have any reason, beyond this error message, to believe that the System.Data.SQLite.Core library is, in fact, linked (albeit dynamically) to such an entry point?
I agree, it seemed quite unusual to me too. But that was the message verbatim. I have no other reason nor evidence. And admittedly I am in a litter over my head here. All I know is the same steps taken for two very close versions resulted in one working and one not. The possibility exists that I was just getting lucky with having one working as the following post might suggest. Thanks.
(3) By mistachkin on 2021-11-23 23:09:35 in reply to 1 [source]
The precompiled managed assemblies within the official NuGet packages are only intended to be used with the interop assemblies also from those NuGet packages.
Ah. That is good to know. Thank you!
(6) By webprofusion on 2021-12-20 03:27:33 in reply to 3 [link] [source]
Further to this I can confirm that when upgrading from System.Data.SQLite.Core 22.214.171.124 to 126.96.36.199 and distributing our application to users that the users are frequently encountering the following error (not universally):
System.EntryPointNotFoundException: Unable to find an entry point named 'SIfcfad09d1b0a60ec' in DLL 'SQLite.Interop.dll'.\r\n at System.Data.SQLite.UnsafeNativeMethods.sqlite3_open_interop(Byte utf8Filename, Byte vfsName, SQLiteOpenFlagsEnum flags, Int32 extFuncs, IntPtr& db)\r\n at System.Data.SQLite.SQLite3.Open(String strFilename, String vfsName, SQLiteConnectionFlags connectionFlags, SQLiteOpenFlagsEnum openFlags, Int32 maxPoolSize, Boolean usePool)\r\n at System.Data.SQLite.SQLiteConnection.Open()\r\n at System.Data.Common.DbConnection.OpenAsync(CancellationToken cancellationToken)\
We have been distributing this app with SQLite for years, generally following the latest System.Data.SQLite.Core
My (unsubstantiated) theory is there could be a particular brand of Anti-Virus that's somehow interfering with the assembly load, or certain users have older SQLite.Interop.dll installed in the GAC and for some reason it's picking that up.
I can confirm
SIfcfad09d1b0a60ec is the SQLite.Interop.dll export of sqlite3_open_interop in 188.8.131.52
[DllImport("SQLite.Interop.dll", EntryPoint = "SIfcfad09d1b0a60ec")] internal static extern SQLiteErrorCode sqlite3_open_interop( byte utf8Filename, byte vfsName, SQLiteOpenFlagsEnum flags, int extFuncs, ref IntPtr db);