private HashSet<FileInfo> _assemblyCache = new HashSet<FileInfo>();
+ private Dictionary<string, string> _unmanagedDictionary = new Dictionary<string, string>()
+ {
+ {"sqlite3", "/lib/libsqlite3.so.0"},
+ {"libsqlite3.so", "/lib/libsqlite3.so.0"}
+ };
+
public AssemblyLoader()
{
AssemblyLoadContext.Default.Resolving += OnResolving;
protected override IntPtr LoadUnmanagedDll(string unmanagedDllName)
{
+ if (_unmanagedDictionary.ContainsKey(unmanagedDllName))
+ {
+ if (File.Exists(_unmanagedDictionary[unmanagedDllName]))
+ {
+ unmanagedDllName = _unmanagedDictionary[unmanagedDllName];
+ }
+ else
+ {
+ unmanagedDllName = _unmanagedDictionary[unmanagedDllName].Replace("/lib/", "/lib64/");
+ }
+ }
+
IntPtr native = base.LoadUnmanagedDll(unmanagedDllName);
if (native == IntPtr.Zero)
{