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

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


person bbs_chad    schedule 19.07.2013    source источник


Ответы (1)


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

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

person Cristian C. Bittel    schedule 05.08.2013