Да, Visual Studio е 32-битово приложение.
Зависи от целта ви за компилация (x86
или x64
или AnyCPU
) кой клиент на Oracle ви е необходим за стартиране/отстраняване на грешки в приложението ви, независимо от архитектурата от Visual Studio.
AnyCPU
ще работи като 64-битов на 64-битов Windows (което най-вероятно е така)
Oracle.DataAccess
не се появява, защото е 64-битов сбор, но вашето Visual Studio е 32-битово.
Има няколко решения:
-
В
Add References
използвайтеBrowse
раздел и намеретеOracle.DataAccess.dll
ръчно. Обикновено ще го намерите в папка%ORACLE_HOME%\odp.net\bin\2.x\
или%ORACLE_HOME%\odp.net\bin\4\
-
Отворете вашия
*.csproj
, респ.*.vbproj
файл с текстов редактор и добавете препратка ръчно, т.е. добавете редове като този под елемент<ItemGroup>
:<Reference Include="Oracle.DataAccess"> <SpecificVersion>False</SpecificVersion> <Private>False</Private> </Reference>
Забележка:атрибути като
Version=...
илиprocessorArchitecture=...
не се изискват. Вашето приложение ще зареди правилнияOracle.DataAccess.dll
в зависимост от избраната архитектура и целевата .NET рамка (при условие, че е инсталирана правилно - също и на вашата целева машина) -
Инсталирайте и x86, и x64 Oracle Client на вашата машина. Ето инструкции как да направите това:Stack Overflow - Инсталирайте Oracle x86 и x64
-
Използвайте управлявания драйвер ODP.NET от Oracle. Можете да го изтеглите от тук:Изтегляния на 64-битови компоненти за достъп до данни на Oracle (ODAC) Това работи и с 32-битови приложения.
-
Отворете редактора на системния регистър и проверете дали RegKey
HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ODP.NET
респ.HKLM\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ODP.NET
съществуват. И двата RegKey съдържат само(Default)
стойност с местоположението на вашияOracle.DataAccess.dll
.Пример:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727\AssemblyFoldersEx\ODP.Net] @="c:\\oracle\\product\\11.2\\Client_x86\\odp.net\\bin\\2.x" [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v4.0.30319\AssemblyFoldersEx\ODP.Net] @="c:\\oracle\\product\\11.2\\Client_x86\\odp.net\\bin\\4"
-
Проверете целевата си рамка в опциите за компилиране. Когато имате инсталиран ODP.NET версия 4.x, трябва да изберете целеви
.NET Framework 4
или по-висока, за да видите записа на ODP.NET в референтния списък.