2013-07-19 10 views
0

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

ответ

0

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

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