Страницы

Поиск по вопросам

четверг, 19 марта 2020 г.

Как лучше сделать динамическую ссылку на SQLite

#c_sharp #sqlite


У SQLite есть версии для x86 и x64. Компьютеры и Windows у нас тоже есть разные.
Нужно, чтобы всё работало и собиралось на компьютерах разных разработчиков с разными CPU.
Пока что у меня есть только такое решение: не ссылаться из сборок на SQLite, а загружать
сборки динамически в зависимости от CPU, а для вызова свойств и методов использовать
тип dynamic. Но это как-то криво выглядит.    


Ответы

Ответ 1



Any CPU не катит по описаным автором причинам. Я использовал кусок кода в самом файле проекта (*.csproj), который в зависимости от архитектуры CPU добавляет ссылку нужной разрядности. Проект найти не могу, но что то типа такого: False ..\..\Lib\SQLite\x86\System.Data.SQLite.dll То есть по умолчанию добавляется например ссылка на х86 и небольшое условие, которое обновит сссылку на другую, если необходимо. В примере только наоборот.

Ответ 2



Экстремальное решение - перейти с SQLite на C#-SQLite. В этом случае, проблемы x32-x64 уже не будут актуальны.

Ответ 3



А почему нельзя использовать вариант Any CPU? Или х86 всегда, ведь х64 достаточно сносно работают с х86 UPD Приходилось работать с библиотекой System.Data.SQLite.dll (x86) тестировал и на х64 и на х86. Правда была какая то проблема, не помню уже, разрешилась дописанием одной строчки в app.config

Комментариев нет:

Отправить комментарий