Проблемы несовместимости Sqlite и Windows RT

Я работаю над аэрохоккеем для двух игроков для устройств Windows RT с использованием моноигры. Помимо игровой логики, я недавно интегрировал sqlite для winRT в свое приложение, чтобы игроки могли сохранять свое табло, просматривать последние результаты и делиться ими. в социальных сетях. Но с этой интеграцией у меня начались проблемы.

прежде чем объяснять проблему, позвольте мне рассказать вам об архитектуре моего ПК и целевого устройства.

Машина, на которой я занимаюсь разработкой и тестированием, — это Windows 8 pro с 64-разрядным процессором на базе x64.

Целевой компьютер — 32-разрядная ОС Windows RT, процессор на базе ARM.

Теперь, когда я устанавливаю целевую платформу своего приложения как «ЛЮБОЙ ЦП», а затем пытаюсь развернуть свое приложение, я получаю сообщение об ошибке:

Ошибка 1 Архитектура процессора создаваемого проекта «Любой ЦП» не поддерживается указанным SDK «SQLite.WinRT, версия = 3.8.2». Рассмотрите возможность изменения целевой архитектуры процессора вашего проекта (в Visual Studio это можно сделать через Configuration Manager) на одну из архитектур, поддерживаемых SDK: "x86, x64, ARM". Понг

Теперь я устанавливаю целевую платформу как ARM, а затем снова получаю сообщение об ошибке

Ошибка 6 Ошибка: DEP0700: Ошибка регистрации приложения. Windows не может установить пакет da981e37-1c3c-4614-8c85-40485aa9e4a8, так как пакет требует архитектуры ARM, а этот компьютер имеет архитектуру x64. (0x80073cf3) Понг

затем я установил цель на x86. Это заставляет игру нормально работать на моем ПК, но установка пакета на целевое устройство не выполняется с этой опцией.

Теперь, наконец, я остался с x64 в качестве цели. Это также хорошо работает в моей системе, и пакет легко устанавливается на целевой машине. Но он просто долго показывает мне черный экран (обратите внимание, что это не сбой!).

Я знаю, что могу делать глупости где-то. Но я застрял на этом с давних пор.

Это длинное примечание, но это только для того, чтобы я мог ознакомить вас с моей проблемой.

Пожалуйста, дайте ответ на задачу.

Ваши предложения всегда приветствуются :) Спасибо.


person A.K.    schedule 13.02.2014    source источник
comment
Я считаю, что SQLite ссылается на 32- или 64-битные DLL, скомпилированные на C или C++, что означает, что это не чистая .NET DLL. Это вызовет проблемы с процессорами ARM, если эти библиотеки DLL не могут быть перекомпилированы для целевой ARM, что может быть невозможно (или, по крайней мере, много работы).   -  person craftworkgames    schedule 14.02.2014
comment
ладно, это что-то утомительное! Тогда как нам интегрировать базу данных в игру? Я имею в виду, что если нам сложно заставить sqlite работать в таких условиях, то какой идеальный способ поддерживать БД в игре?   -  person A.K.    schedule 14.02.2014


Ответы (1)


Если вы хотите развернуть или отладить на своем компьютере для разработки, установите целевую платформу как «x86». Если вы хотите выполнить развертывание или отладку на своем устройстве RT, измените целевую платформу на «ARM».

Вы не можете развернуть приложение, предназначенное для x86 или x64, на устройстве ARM.

Также dll «Microsoft C++ Runtime Package» не позволит вам построить с конфигурацией «Любой процессор».

person stackamar    schedule 13.02.2014
comment
Я делаю то же самое, но до того, как приложение будет развернуто на целевой машине, пакет приложения сначала создается на машине, которую я использую для целей разработки. И я не могу создать пакет ARM на своей машине для разработки. - person A.K.; 14.02.2014
comment
Вам необходимо настраивать пакет сборки каждый раз, когда вы создаете пакет для разных устройств. Посмотрите здесь. Я могу создать его с помощью SQLite, ориентированного на ARM. - person stackamar; 14.02.2014