はい、VisualStudioは32ビットアプリケーションです。
コンパイル対象によって異なります(x86
またはx64
またはAnyCPU
)Visual Studioのアーキテクチャに関係なく、アプリケーションの実行/デバッグに必要なOracleクライアント。
AnyCPU
64ビットWindowsでは64ビットとして実行されます(ほとんどの場合)
Oracle.DataAccess
64ビットアセンブリであるため表示されませんが、VisualStudioは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
をロードします 選択したアーキテクチャとターゲットの.NETFrameworkに応じて(ターゲットマシンにも正しくインストールされている場合) -
x86とx64の両方のOracleクライアントをマシンにインストールします。これを行う方法の説明は次のとおりです。スタックオーバーフロー-Oraclex86およびx64をインストールします
-
OracleのODP.NETマネージドドライバを使用します。ここからダウンロードできます:64ビットOracle Data Access Components(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エントリを表示するには、またはそれ以上。