ODP.NET x64 ANYCPU и установка Prefer 32-bit

На моей машине установлена ​​последняя версия Oracle ODP.NET x64 (версия xCopy). Моя машина x64. Я не знаю, будут ли целевые машины x86 или x64, поэтому я установил свойства сборки AnyCPU в VS 2012. По умолчанию установлен флажок «предпочитать 32-разрядную версию».

С компиляцией все в порядке, но когда я запускаю код, он говорит, что не может найти сборку. Снятие флажка «предпочитать 32-разрядную версию» решает эту проблему.

Но что является причиной этого? Я бы предположил, что предпочтение 32-битной версии — это нормально, но если это единственный вариант, будет использоваться x64.

Любые идеи?


person Sander    schedule 23.02.2013    source источник


Ответы (1)


«Любой процессор» с параметром «Предпочитать 32-разрядный» будет работать как 32-разрядный процесс на 64-разрядных машинах. И поскольку 32-разрядный процесс не может загружать 64-разрядные сборки ODP.NET (а также собственные библиотеки DLL), он выдает упомянутое вами исключение.

Вы можете узнать больше о настройке «Предпочитать 32-разрядную версию» здесь: https://stackoverflow.com/a/12066861/631802

person cremor    schedule 16.04.2013