就我而言,Windows 注册表中的 oci.dll 路径错误。
只有在编写了一个小型控制台应用程序并分析了由 Process Monitor 工具创建的应用程序运行日志之后,我才设法捕捉到这一点:
工具 - 文件摘要 - ByFolder 树帮助找到从 Windows 注册表中读取错误路径值的记录
我进行了以下修复:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI]
"OracleOciLibPath"="C:\\PATH_TO_YOUR_ORACLE_CLIENT\\bin"
[HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\MSDTC\MTxOCI]
"OracleOciLibPath"="C:\\PATH_TO_YOUR_ORACLE_CLIENT\\bin"
它修复了错误。
就我而言,解决问题的方法是安装 C++ Redistributeable:
# ODAC requires the Visual C++ Redistributable for Visual Studio 2015-2022 or later:
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12;
Invoke-WebRequest "https://aka.ms/vs/17/release/vc_redist.x64.exe" -OutFile "vc_redist.x64.exe";
Start-Process -filepath .\vc_redist.x64.exe -ArgumentList "/install", "/passive", "/norestart" -Passthru | Wait-Process;
Remove-Item -Force vc_redist.x64.exe;
这是 ODAC 下载页面提到的要求