Build Probleme mit SQLite-WinRT Wrapper

8

Ich habe Probleme, meine App für das ARM-Ziel zu erstellen, nachdem ich den SQLite-WinRT-Datenbank-Wrapper hinzugefügt habe. Ich könnte dies mit einer einfachen Test-App wie folgt reproduzieren:

(Dies geschieht in Visual Studio 2013.)

  1. Erstellen Sie eine leere Windows 8.1 Universal App (WinRT)
  2. Laden Sie SQLite für Windows Phone 8.1 und SQLite für Windows Runtime (Windows 8.1) mit herunter Tools / Erweiterungen und Updates . Fügen Sie sie den Referenzen der jeweiligen Projekte hinzu.
  3. Mit NuGet fügen Sie jedem Projekt das SQLite-WinRT -Paket hinzu.
  4. Build für x86 (lokaler Computer oder Telefon-Emulator) - & gt; keine Probleme.
  5. Build für ARM (Telefongerät) - & gt; build error (unabhängig von debug oder release builds).
  

Es gab einen Konflikt zwischen der Prozessorarchitektur des zu erstellenden Projekts "ARM" und der Prozessorarchitektur "x86" der Implementierungsdatei "C: \ Benutzer \ jr \ Dokumente \ Visual Studio 2015 \ Projects \ sqlite- test \ packages \ Sqlite-Winrt.3.8.7.1 \ lib \ wpa81 \ SQLiteWinRT.dll "für" C: \ Benutzer \ jr \ Dokumente \ Visual Studio 2015 \ Projekte \ sqlite-test \ packages \ SQLite-Winrt.3.8.7.1 \ lib \ wpa81 \ SQLiteWinRT.winmd ". Diese Nichtübereinstimmung kann Laufzeitfehler verursachen. Bitte beachten Sie, dass Sie die Zielprozessorarchitektur Ihres Projekts über den Konfigurationsmanager ändern müssen, um die Prozessorarchitekturen zwischen Ihrem Projekt und der Implementierungsdatei auszurichten, oder wählen Sie eine winmd-Datei mit einer Implementierungsdatei mit einer Prozessorarchitektur, die mit der Zielprozessorarchitektur übereinstimmt Projekt.

Ich habe ein kleines Testprojekt hier veröffentlicht (leeres Windows Phone 8.1-Projekt, SQLite hinzugefügt, SQLite-WinRT über NuGet hinzugefügt).

    
jerry 21.08.2015, 17:15
quelle

3 Antworten

1

Eine Problemumgehung für die Probleme mit dem NuGet-Paket ist das Hinzufügen der sqlite-winrt-Quellen zu Ihrem Telefon oder Ihrer universellen App.

  1. installiere SQLite für Windows Phone 8.1 (und für Universal auch Windows Runtime (Windows 8.1)) in Tools - & gt; Erweiterungen und Updates falls noch nicht geschehen
  2. fügen Sie Referenzen zu den jeweiligen Projekten hinzu
  3. Laden Sie die Quellen für den sqlite-winrt-Wrapper
  4. herunter
  5. Kopieren Sie die Ordner SQLiteWinRTPhone81 (RT) (und ggf. SQLiteWinRT81) in Ihre Lösung
  6. Fügen Sie die Projekte zu Ihrer Lösung in Visual Studio hinzu (klicken Sie mit der rechten Maustaste auf Lösung - & gt; Hinzufügen - & gt; Bestehendes Projekt )
  7. fügen Sie Referenzen zu den jeweiligen Projekten hinzu
  8. Bearbeite die Referenzen für das / die sqlite-winrt-Projekt (e), um auf die korrekte Version von SQLite zu verweisen (Rechtsklick-Projekt - & gt; Eigenschaften - & gt; Common Porterties - & gt; Referenzen ): Fügen Sie in Ihrem Projekt einen Verweis auf die aktuelle SQLite-Version hinzu und entfernen Sie die alte Referenz
  9. Erstellen Sie Ihre Lösung

    
jerry 02.09.2015, 06:17
quelle
3

Gehe zu den Projekteigenschaften, öffne die Erstellungsregisterkarte und setze die Zielplattform auf ARM

Bearbeiten Sie haben WinRt sqlite hinzugefügt. Es ist auf x86 buid und wenn Sie es auf ARM-Prozess-Architektur bauen wollen, kann es nicht bauen, müssen Sie WinRTSQlite DLL entfernen, als Ihr Projekt wird gut funktionieren. Hier ist Code

Hoffe, das hilft

    
Muhammad Saifullah 21.08.2015 18:46
quelle
0

Ich habe Ihr Projekt heruntergeladen und auf den Referenzen, die ich gefunden habe, dass Sie SQLite-WinRT und SQLite für Windows Phone 8.1 verwenden, brauchen Sie nicht beide.

Sobald Sie SQLite-WinRT entfernen, beginnt Ihr Projekt mit der Kompilierung.

BEARBEITEN:

Innerhalb einer universellen App müssen Sie nur die richtigen Referenzen hinzufügen, wenn ein Telefon-Projekt nur sqlite für Windows Phone 8.1 hinzufügen, stattdessen auf der Windows 8.1 App nur die SQLite-WinRT hinzufügen

    
frenk91 26.08.2015 13:07
quelle