2017-02-18 11 views
0

Я пытаюсь научиться разрабатывать приложения для UWP для настольных компьютеров и мобильных устройств. Я в настоящее время работаю над получением Entity Framework работает в моем приложении в состояние магазина приложений и следовал по следующей ссылке:Проблемы с sqllite3.dll с разработкой приложений UWP для мобильных телефонов

https://docs.microsoft.com/en-us/ef/core/get-started/uwp/getting-started

Он работал хорошо для рабочего стола, проблема, однако, что, когда я пытаюсь запустить его на Windows Mobile эмулятора я получаю следующее сообщение об ошибке в режиме отладки, когда код достигает() шаг db.Database.Migrate:

Unable to load DLL 'sqlite3': The specified module could not be found 

в ссылке я вставленного выше, кто-то еще была такая же проблема и в комментарии они рекомендовали попробовать следующее:

Step 1: Install SQLite VSIX pacakge for Universal Windows Platform development using Visual Studio 2015 
https://www.sqlite.org/2016/sqlite-uwp-3130000.vsix 

Step 2: Install NuGet package SQLite.NET-PCL 
Install-Package SQLite.NET-PCL 

Step 3: Add references 
Add Reference -> Universal Windows ->Extensions -> Make sure the following packages have been checked: "SQLite for Universal Windows Platform" "Visual C++ 2015 Runtime for Universal Windows Platform Apps" 
After that, if you get the error "Payload contains two or more files with the same destination path 'sqlite3.dll', do the following: 
copy sqlite3.dll from 
C:\Program Files (x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UAP.2015\3.8.11.1\Redist\Debug\ARM\sqlite3.dll 
past to (override it) 
C:\Users\%USERNAME%\.nuget\packages\SQLitePCL.raw_basic\0.7.1\build\native\sqlite3_dynamic\winrt81\arm\sqlite3.dll 

Проблема после выполнения этих шагов заключается в том, что я вижу проблему при выполнении сборки для «Полезная нагрузка содержит два или более файлов», однако не в каталоге SQLitePCL.raw_basic (я даже не считаю, что что). Вместо того, чтобы моя ошибка заключается в следующем:

Payload contains two or more files with the same destination path 'sqlite3.dll'. Source files: 
C:\Users\admin\.nuget\packages\SQLite\3.13.0\runtimes\win7-x86\native\sqlite3.dll 
C:\Program Files (x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UWP.2015\3.13.0\Redist\Debug\x86\sqlite3.dll 

Я искал везде, и я действительно озадачен о том, как получить мою UWP программу, работающую на мобильных устройствах. Большое спасибо за вашу помощь!

ответ

0

Похоже, у вас есть решение для устранения исключения The specified module could not be found из комментария @Leandro_Medeiros_Machado на this document. Если вы получили исключение Payload contains two or more files with the same destination path 'sqlite3.dll' после выполнения вышеуказанных трех шагов, вы также можете найти следующее решение из комментария.

После этого, если вы получите сообщение об ошибке «Payload содержит два или более файлов с тем же путем назначения„sqlite3.dll“, выполните следующие действия: копировать sqlite3.dll из 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\%USERNAME%\.nuget\packages\SQLitePCL.raw_basic\0.7.1\build\native\sqlite3_dynamic\winrt81\arm\sqlite3.dll

для вас, возможно, потребуется скопировать из C:\Program Files (x86)\Microsoft SDKs\UAP\v0.8.0.0\ExtensionSDKs\SQLite.UWP.2015\3.13.0\Redist\Debug\x86\sqlite3.dll в (переопределение) C:\Users\admin\.nuget\packages\SQLite\3.13.0\runtimes\win7-x86\native\sqlite3.dll.

Но на самом деле, для использования ядра EF вы не вам необходимо выполнить вышеуказанные шаги, и я рекомендую вам проверить свою среду вместо использования вышеописанного решения. Я создал простой проект EF, следуя документу и не устанавливая VSIX, я могу успешно запустить эмулятор (сборка 10586). Моя сборка VS - это обновление до 2015 года, версия ОС - 14393, а основная версия EF - Microsoft.EntityFrameworkCore.Sqlite 1.1.0. Поэтому, пожалуйста, во-первых, проверьте, если ваша среда удовлетворяет следующим условиям:

И если правильность ваших основных инструментов EF и EF.

+0

Большое спасибо за ваш ответ. У меня определенно есть все, что было до свидания, так как я недавно установил все с веб-сайта Microsoft.У меня Windows 10 build 14393, Visual Studio 2015 Update 3 и Microsoft.EntityFrameworkCore.Sqlite 1.1.0. Я все равно пытался переписать файл, но сообщение все равно остается. Версия EF Core Tools - 1.1.0-preview4-final. Я должен также упомянуть, что я запускаю его на мобильном эмуляторе build 14393, если это имеет значение. Любые другие идеи? – sikhness

+0

Скопировать его в указанный каталог, похоже, сделал трюк, который не работал до того, как я создал этот вопрос по иронии судьбы. Возможно, мне просто нужно было перезапустить мою машину. Однако у меня есть все текущее, и я не могу заставить его работать, не добавляя VSIX и следуя этим шагам. Я пытался использовать мобильный эмулятор 14393. Любые идеи, почему это было бы? Все остальные версии такие же, как у вас. – sikhness

+0

@sikhness, я также тестирую на эмуляторе build 14393, он может хорошо работать. Также проверьте, является ли версия .NetCore 5.2.2. И похоже, что ваша проблема больше похожа на проблему с эмулятором, может быть, повторная загрузка эмулятора может быть решена. В любом случае вы решили с помощью обходного пути. Если бы мой ответ помог вам, вы могли бы пометить его как принятого? –

Смежные вопросы