Ссылка на платформу, специфичная для System.Data.SQLite - PullRequest
2 голосов
/ 29 апреля 2010

Я использую SQLite для модульного тестирования и могу использовать его в качестве базы данных для локальной разработки / подготовки.

System.Data.SQLite имеет в основном 2 версии: x86 и x64. Правильный должен использоваться для конкретной платформы.

У меня 64-битная Win7, другие ребята в команде могут использовать 32-битные ОС. На этом этапе платформа сервера неизвестна.

Если я использую 32-битную версию сборки на 64-битной платформе, я получаю BadImageFormatException: Could not load file or assembly 'System.Data.SQLite'. Я верю, что подобное произойдет при попытке использовать 64-битную сборку на 32-битной платформе.

Итак, мой вопрос: как лучше всего ссылаться на сборку SQLite , чтобы она не зависела от платформы и люди могли просто ее использовать?

Можно использовать 32-битную версию сборки на 64-битной платформе (может, где-то есть переключатель для этого?).

1 Ответ

0 голосов
/ 29 апреля 2010

Если он установлен в GAC, вы просто ссылаетесь на сборку, и система выберет правильную.

В противном случае вам необходимо убедиться, что вы ссылаетесь на правильный «вручную» (в прошлом я использовал систему сборки, которая при сборке копировала правильную версию в папку «deploy»). 64-битный, так что это не так уж важно).

Кроме того, вы можете создать свое приложение как x86, а затем использовать исключительно 32-битную версию. В свойствах проекта на вкладке «Построение» установите «Цель платформы» на «x86». Это нужно делать только с исполняемыми файлами: библиотеки DLL могут быть AnyCPU.

...