Варианты использования System.data.sqlite на 32-битве и 64-битном мире C #

Я понимаю, почему System.data.sqlite.dll предоставляется в 32-битных и 64 битах. Так что давайте не будем жить на этом и двигаться дальше. :)

Так как это делается так, кажется, делает чистый C # Development TAD сложнее с 3 вариантами.

  1. - поддерживать только 32-битные и силы удалось Сборка для компиляции X86 и справиться с этим в работе в 32 или 64 бит, и там, потеряв преимущества, когда вы находитесь на 64 бита среда.

  2. - заставить 64 бит и поддерживать только 64 бит и потерять Способность работать 32 бит, но набирает все преимущества 64 бита.

  3. - создать две версии их сборки, которая компилирует x86 и использует 32 бит SQLite и другой, который компилирует x64 и использует 64-битный SQLite. Это предотвращает использование «любого» в качестве опции компиляции И возможность легко развертывать единую сборку на любой тип. Его не так ужасно управлять с точки зрения развития, как мы понадобится два проекта. Только один код C # официально в одном, А другой просто будет использовать «ссылки» к коду в другой. Этот предназначен только для компиляции. Все еще оставляет нас с необходимостью Управляйте двумя выходами для развертывания.

Со всем, что сказал, я только ищу подтверждение, что вышеизложенное являются единственным правильным выбором.

Если однако, есть и другие варианты, которые я упускаю, пожалуйста, дайте мне знать. В частности, если есть способ получить один DLL C # DLL, который может компилировать любую, чтобы он мог воспользоваться преимуществами 32 или 64 бита в зависимости от того, где его работает и все еще использует System.data.sqlite.dll.

21
задан Rodney S. Foley 31 August 2011 в 22:51
поделиться

2 ответа

Существует два распространенных решения для сохранения вашего основного приложения в AnyCPU:

  • Установите сборки x86 и x64 в GAC: они могут (должны!) Иметь одинаковые имена сборок и GAC автоматически решит, использовать ли версию x86 или x64.

  • Подключитесь к AppDomain.AssemblyResolve и обслуживайте нужные сборки из подкаталогов, используя Assembly.LoadFrom

14
ответ дан 29 November 2019 в 20:08
поделиться

Обычно первым вариантом будет вариант, если вашему приложению не требуется более 4 ГБ памяти. Помните, что 32-битное приложение в 64-битной ОС обладает большинством 64-битных преимуществ без многих недостатков. Вот почему x86 является целью по умолчанию для приложений .exe в VS 2010.

2
ответ дан 29 November 2019 в 20:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: