#c_sharp #sqlite
У SQLite есть версии для x86 и x64. Компьютеры и Windows у нас тоже есть разные. Нужно, чтобы всё работало и собиралось на компьютерах разных разработчиков с разными CPU. Пока что у меня есть только такое решение: не ссылаться из сборок на SQLite, а загружать сборки динамически в зависимости от CPU, а для вызова свойств и методов использовать тип dynamic. Но это как-то криво выглядит.
Ответы
Ответ 1
Any CPU не катит по описаным автором причинам. Я использовал кусок кода в самом файле проекта (*.csproj), который в зависимости от архитектуры CPU добавляет ссылку нужной разрядности. Проект найти не могу, но что то типа такого:То есть по умолчанию добавляется например ссылка на х86 и небольшое условие, которое обновит сссылку на другую, если необходимо. В примере только наоборот. False ..\..\Lib\SQLite\x86\System.Data.SQLite.dll Ответ 2
Экстремальное решение - перейти с SQLite на C#-SQLite. В этом случае, проблемы x32-x64 уже не будут актуальны.Ответ 3
А почему нельзя использовать вариант Any CPU? Или х86 всегда, ведь х64 достаточно сносно работают с х86 UPD Приходилось работать с библиотекой System.Data.SQLite.dll (x86) тестировал и на х64 и на х86. Правда была какая то проблема, не помню уже, разрешилась дописанием одной строчки в app.config
Комментариев нет:
Отправить комментарий