Не удается найти System.Data.SQLite в проекте MonoMac

Я пытаюсь использовать базу данных SQLite в программе MonoMac (с целью повторного использования базы данных в приложении MonoTouch).

Я пробовал два разных ORM, и у обоих возникла одна и та же проблема. Поискав в Интернете, я обнаружил флаг MONO_LOG_LEVEL=debug и много информации, но не могу заставить его работать.

В настоящее время я ссылаюсь на Mono.Data.SQLite, но из того, что я обнаружил, кажется, что это просто оболочка для версии, специфичной для системы.

Вот вывод ошибки:

Mono: запрос на загрузку сборки System.Data v2.0.0.0 был переназначен на v4.0.0.0 Mono: Местоположение проверки загрузчика сборки: '/Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono /gac/System.Data/4.0.0.0_ b77a5c561934e089 / System.Data.dll '. Моно: адрес изображения System.Data [0x62ada0] -> /Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/gac/System.Data/4.0.0.0 _b77a5c561934e089 / System.Data. dll [0xbd5600]: 2 Mono: Сборка System.Data [0x62ada0] добавлена ​​в домен SQLTest.exe, ref_count = 1 Mono: AOT не удалось загрузить модуль AOT /Library/Frameworks/Mono.framework/Versions/2.10.9/lib/ моно / gac / System.Data / 4.0.0.0_ b77a5c561934e089 / System.Data.dll.dylib: dlopen (/Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/gac/System. Data / 4.0.0.0 _b77a5c561934e089 / System.Data.dll.dylib, 9): изображение не найдено

Mono: сборочный загрузчик загружает сборку из местоположения: '/Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/gac/System.Data/4.0.0.0_ b77a5c561934e089 / System.Data.dll' . Mono: Config пытается проанализировать: '/Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/gac/System.Data/4.0.0.0 _b77a5c561934e089 / System.Data.dll.config' . Mono: Config пытается проанализировать: '/Library/Frameworks/Mono.framework/Versions/2.10.9/etc/mono/assemblies/System.Data/System.Data.config'. Mono: Ссылка на сборку, адрес Catnap [0x6213c0] -> System.Data [0x62ada0]: 2 Моно: Ссылка на сборку, addref System.Data [0x62ada0] -> mscorlib [0x1001d90]: 6 Моно: Местоположение проверки загрузчика сборки: '/ Library / Frameworks /Mono.framework/Versions/2.10.9/lib/System.Data.SQLite.dll '. Mono: Местоположение проверки загрузчика сборки: '/Library/Frameworks/Mono.framework/Versions/2.10.9/lib/System.Data.SQLite.exe'.

Необработанное исключение: System.IO.FileNotFoundException: не удалось загрузить файл или сборку System.Data.SQLite или одну из его зависимостей. Система не может найти указанный файл. Имя файла: 'System.Data.SQLite' в System.AppDomain.Load (System.String assemblyString, System.Security.Policy.Evidence assemblySecurity, Boolean refonly) [0x00000] в: 0 в System.AppDomain.Load (System.String assemblyString) [0x00000] в: 0 в (удаленное взаимодействие-вызов-с-проверкой оболочки) System.AppDomain: Загрузить (строка) в System.Reflection.Assembly.Load (System.String assemblyString) [0x00000] в: 0 в Catnap. Database.BaseDbAdapter.ResolveConnectionType (System.String connectionTypeAssemblyName) [0x00000] в: 0 в Catnap.Database.Sqlite.BaseSqliteAdapter..ctor (System.String connectionTypeAssemblyName) [0x00000] в: 0 в Catnitelap.Dqatabase.Sq ctor () [0x00000] в: 0 в Catnap.DbAdapter.get_Sqlite () [0x00000] в: 0 в YAData.Connection.Connect () [0x00000] в: 0 в SQLTest.MainClass.Main (System.String [] args ) [0x00000] в: 0

Я пробовал добавить файл конфигурации с

<configuration>
   <dllmap dll="sqlite3" target="/usr/local/lib/libsqlite3.0.dylib" os="!windows"/>
</configuration>

в приложение, и я попытался изменить /Library/Frameworks/Mono.framework/Versions/2.10.9/etc/mono/config, но ничего не помогло. Он по-прежнему ищет не в тех местах и ​​не находит SQLite.

Помоги пожалуйста?


person Bobson    schedule 10.10.2012    source источник


Ответы (1)


Я до сих пор не знаю, почему он искал System.Data.SQLite, но я сам перекомпилировал одну из ORM, а не использовал предоставленную dll, и она сработала. Я уверен, что часть проблемы заключалась в том, что я использовал dll MonoTouch в проекте MonoMac. Перекомпиляция CoolStorage (в которой используется Mono.Data.Sqlite вместо System.Data.SQLite) решила эту проблему.

Если кто-нибудь может дать мне объяснение, я поменяю принятые ответы.

Давай с кодом!

person Bobson    schedule 12.10.2012