Replace the unmanaged name of native module with the library path 98/121898/2 accepted/tizen/unified/20170405.174258 submit/tizen/20170404.225225
authorJongHeon Choi <j-h.choi@samsung.com>
Wed, 29 Mar 2017 09:53:00 +0000 (18:53 +0900)
committerJongHeon Choi <j-h.choi@samsung.com>
Tue, 4 Apr 2017 09:35:27 +0000 (18:35 +0900)
Change-Id: I9e3ec63c9f485c02a97af0d8104c5384c32c0452

Tizen.Runtime/Tizen.Runtime.Coreclr/AssemblyLoader.cs

index 3423d80..dd96abf 100755 (executable)
@@ -40,6 +40,12 @@ namespace Tizen.Runtime.Coreclr
 
         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;
@@ -106,6 +112,18 @@ namespace Tizen.Runtime.Coreclr
 
         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)
             {