У меня возникла ситуация, когда у меня есть приложение Windows Phone Silverlight 8.1, и я хотел бы использовать компонент Windows Runtime в качестве фоновой задачи. В обоих этих проектах я хочу использовать SQLite для доступа к базе данных приложений.Как использовать SQLite в Windows Phone 8.1 Приложение Silverlight и компонент Runtime WinRT
Я нашел аналогичный вопрос здесь:
How to use SQLite in Windows (Phone) 8.1's BackgroundTask
Это почти охватывает ситуацию, но не совсем. Любые идеи о том, как добиться того, о чем я прошу?
я могу получить очень «близко», последнее сообщение об ошибке, что я получаю на стадии компиляции выглядит следующим образом:
Payload contains two or more files with the same destination path 'sqlite3.pdb'. Source files: C:\Program Files (x86)\Microsoft SDKs\Windows Phone\v8.0\ExtensionSDKs\SQLite.WP80\3.8.11.1\Redist\Debug\ARM\sqlite3.pdb C:\Program Files (x86)\Microsoft SDKs\WindowsPhoneApp\v8.1\ExtensionSDKs\SQLite.WP81\3.8.11.1\Redist\Debug\ARM\sqlite3.pdb
Я видел решение других ошибок этого типа является просто установите Copy Local в false на одной из ссылок, но я не вижу, как это было бы возможно в этом случае, так как оба действительно необходимы.
Заранее благодарен!
UPDATE 1: Используя предложение от scottisafool ниже, я удалил PDB файл из папки SQLite SDK, и это заставляет меня немного дальше, то он по крайней мере, составляет в настоящее время. Тем не менее, тогда у меня возникает другая проблема ...
Затем я начинаю заполнять код для доступа к базе данных в фоновом задании, а после перескакивания через несколько обручей с «недействительным типом WinRT» я нахожусь в точка, где все это компилируется, и похоже, что она должна работать. Однако, когда я затем попытаться запустить приложение и запустить код, который работал отлично прежде, то есть создать базу данных при первой загрузке приложения, я бегу в эту ошибку:
The specified module could not be found. (Exception from HRESULT: 0x8007007E)
со следующим StackTrace:
at System.StubHelpers.StubHelpers.GetWinRTFactoryObject(IntPtr pCPCMD) at Sqlite.Sqlite3.sqlite3_open_v2(String filename, Database& db, Int32 flags, String zVfs) at SQLite.Net.Platform.WindowsPhone8.SQLiteApiWP8.Open(Byte[] filename, IDbHandle& db, Int32 flags, IntPtr zVfs) at SQLite.Net.SQLiteConnection..ctor(ISQLitePlatform sqlitePlatform, String databasePath, SQLiteOpenFlags openFlags, Boolean storeDateTimeAsTicks, IBlobSerializer serializer, IDictionary`2 tableMappings, IDictionary`2 extraTypeMappings, IContractResolver resolver) at SQLite.Net.SQLiteConnection..ctor(ISQLitePlatform sqlitePlatform, String databasePath, Boolean storeDateTimeAsTicks, IBlobSerializer serializer, IDictionary`2 tableMappings, IDictionary`2 extraTypeMappings, IContractResolver resolver) at DatabaseContext.OnCreate(String databaseFilePath)
UPDATE 2: Вышеуказанное сообщение об ошибке ТОЛЬКО происходит, когда я добавить ссылку на мой Windows Phone 8.1 Портативная библиотека классов (которая содержит весь код SQLite) для проекта компонента времени исполнения Windows. Оно должно быть в этой точке, что:
- SQLite для Windows Phone 8,1
- SQLite для Windows Phone
SDK, оба втянуты в полной заявке. В этот момент я предполагаю, что ссылка на Windows Phone 8.1 втягивается, но ссылка на Windows Phone отсутствует, потому что она рассматривается как уже присутствующая. Это полная гипотеза, но, похоже, она соответствует тому, что я вижу. Любые мысли о том, как действовать? Благодаря!
Хорошо, так что мне кажется, что это помогает мне частично ... –
Посмотрите это сообщение из прошлого года https://invokeit.wordpress.com/2014/08/19/dll-reference -hell-с-WP8-SL81-и-WinRT-компонентный / –