Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Unable to load DLL sqlite3 in Universal Windows App running on Mobile

I am developing a UWP. I am using the sqlite-net-pcl library. After upgrading my Application from RC to RTM , I got a runtime error - sqlite3.dll could not be found - if it runs on a Mobile emulator or a device. It worked prefectly after I added a reference to C++ 2013 Runtime Package and I ran it in Local Machine.

Exception Message:

Message "The type initializer for 'SQLitePCL.raw' threw an exception." string

The innerexception message:

{"Unable to load DLL 'sqlite3': The specified module could not be found. (Exception from HRESULT: 0x8007007E)"} System.Exception {System.DllNotFoundException}

Of course I could not add a referece to 'Sqlite for Universal App Platform' because I am geting the following error

Severity Code Description Project File Line Error Payload contains two or more files with the same destination path 'sqlite3.dll'. Source files: C:\Program Files (x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UAP.2015\3.8.11.1\Redist\Debug\ARM\sqlite3.dll C:\Users\sMavrikis.nuget\packages\SQLitePCL.raw_basic\0.7.1\build\native\sqlite3_dynamic\winrt81\arm\sqlite3.dll TestApp1

like image 968
Stam Avatar asked Aug 06 '15 08:08

Stam


3 Answers

Add a reference to 'SQLite for Universal App Platform' This will trigger the error:

Payload contains two or more files with the same destination path 'sqlite3.dll'.

This error occurs because of different version of sqlite3.dll in both the locations marked by the error. Resolve this error by simply copying

C:\Program Files (x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UAP.2015\3.8.11.1\Redist\Debug\ARM\sqlite3.dll

to

C:\Users\%USERNAME%\.nuget\packages\SQLitePCL.raw_basic\0.7.1\build\native\sqlite3_dynamic\winrt81\arm\sqlite3.dll

overwriting existing file.

Rebuild your project. It should compile now.

like image 171
iftitaj Avatar answered Oct 24 '22 06:10

iftitaj


If you look at the two conflicting locations, one seems to be coming from a more official Microsoft extension for UWP, while the second is coming from a nuGet package.

When I encountered this error, I needed the functionality of the nuGet package, so I decided to keep it and drop the other reference. I right clicked on the project in the solution explorer and went to Add->Reference and then unchecked the reference to SQLite. Seemed less error prone than copying the file from one location to the other to me.

enter image description here

like image 32
Lupum Avatar answered Oct 24 '22 06:10

Lupum


I was getting the same error messages. I had started by using SQLite-PCL which also required SQLite for Universal App Platform as a reference. Later I switched to SQLite.Net-PCL. That is when I got those errors. In researching a solution I found this page. It worked for a bit. Eventually I removed the Reference to SQLite for Universal App Platform and the errors went away.

like image 2
Will Autio Avatar answered Oct 24 '22 06:10

Will Autio