VS2012 Выбор между x86, x64, AnyCPU, AnyCPU32bitferred и ссылками на сторонние библиотеки DLL

Я ищу совет для лучшего способа настроить новый проект VS2012 C#. Я хочу ориентироваться как на архитектуру x86, так и на архитектуру x64. Тем не менее, у меня есть сторонние библиотеки DLL, на которые я должен ссылаться. Существует две версии одной и той же DLL; один скомпилированный для x86 и x64. При этом нужно ли конкретно ориентироваться на x86 и x64? Я бы не подумал, что AnyCPU или новый AnyCPU32bitferred будет работать для моей ситуации. Кроме того, как правильно ссылаться на библиотеки DLL в одном и том же проекте (они имеют одинаковые имена, но одна - 32-разрядная, а другая - 64-разрядная). Спасибо.

1 ответ

Настройка вашего проекта должна быть сосредоточена на "целевом" компьютере, а не на компиляционном компьютере. Если ваша целевая система будет 32-битной, то вы должны ссылаться на версию x86 сторонних библиотек, иначе, если ваш целевой компьютер будет 64-битной, то вы должны ссылаться на версию x64. Вы не должны / не могли ссылаться на обе библиотеки в одном проекте. В любом случае вы можете поддерживать две параллельные версии вашего проекта, которые отличаются только в разделе ссылок. Если вам нужно создать установщики x64, вы, вероятно, также проверите ответ на этот вопрос: BadImageFormatException x64 Issue

AnyCPU может быть полезен, когда вы не распространяете сторонние библиотеки DLL, и вы предполагаете, что они были предварительно установлены в целевой системе, и ваша разработка не нуждается / не использует никаких специальных функций из набора x64. В этом случае ваш код будет вызывать сторонние DLL в том формате, в котором они были установлены.

Другие вопросы по тегам