ODP.NET для 32-битных и 64-битных - PullRequest
6 голосов
/ 05 августа 2011

Я занимаюсь разработкой приложения, которое использует ODP.NET для подключения к БД Oracle.Я хотел бы иметь одну версию для 32-битных и 64-битных машин.Проблема в том, что я не мог понять, как собрать projetc с целью anycpu , похоже, что цель должна совпадать с версией драйвера ODP.Таким образом, это означает, что мне нужно иметь версии одного и того же приложения для 32-битной и другой для 64-битной.Но это не было проблемой при использовании клиента MS .NET Oracle (System.Data.OracleClient).Есть ли способ иметь такое же поведение при использовании ODP.NET, как на клиенте MS .NET?

Ответы [ 4 ]

8 голосов
/ 12 июля 2013

Просто обновите несколько лет спустя: Oracle выпустила управляемый клиент ODP.NET, поэтому больше не нужно беспокоиться о x64 / x86 в приложениях .NET. Вы можете найти больше информации на сайте Oracle: http://www.oracle.com/technetwork/topics/dotnet/index-085163.html

6 голосов
/ 27 сентября 2012

Основной причиной является зависимость ODP.NET от нативных DLL-библиотек OCI , что, конечно, не может быть "Любой ЦП".

Теоретически, ODP.NETможет обнаружить «битность» текущего выполнения в коде .NET, а затем динамически загрузить 32-битные или 64-битные собственные библиотеки DLL соответственно, но в настоящее время это не так.

Корпорация Oracleв настоящее время находится в процессе реализации полностью управляемого поставщика .Но до тех пор мы застряли с необходимостью делать отдельные сборки для каждой "битности".

1 голос
/ 05 августа 2011

Опция по умолчанию для любого проекта C # - он будет работать как в операционных системах x64, так и в x86.

Так что это означает, что мне нужно иметь версии одного и того же приложения для 32-битной и других версий.для 64 бит.Но это не было проблемой при использовании клиента MS .NET Oracle (System.Data.OracleClient).

Это ожидается .... Вам необходимо выпустить версию x86 и версию x64, пожалуйстаобратите внимание, что приложение x86 не может ссылаться на сборку x64 и наоборот.

Причина, по которой ссылка Microsoft отличалась, заключается в том, что по умолчанию она является частью .NET Framework.

Я не могу загрузитьЯ верю, что файл ODP.NET содержит сборку x86 и сборку x64.

Правильный способ - выпустить версию x86 и версию x64 вашей программы.

0 голосов
/ 02 января 2015

ODP.NET специально создан для 32-битной или 64-битной платформы. Они могли бы создать единую библиотеку для AnyCPU, которая позволяла бы использовать ее в 32-разрядном или 64-разрядном процессе. Однако, как упоминал Бранко Димитриевич, dll, управляемая ODP.NET, использует закулисные библиотеки. Собственные библиотеки зависят от платформы; таким образом, требуя, чтобы Oracle построил отдельную библиотеку ODP.NET для каждой платформы. Альтернативы нет.

...