C# 为什么是';OraOLEDB.Oracle.1';仅在调试模式下运行时,提供程序未在本地计算机上注册?
我有一个其他人编写的C#源代码,它有两种配置:释放和调试都以任何CPU为目标 当我发布时,一切都很好。在调试下启动时,我得到:C# 为什么是';OraOLEDB.Oracle.1';仅在调试模式下运行时,提供程序未在本地计算机上注册?,c#,visual-studio-2010,windows-7-x64,C#,Visual Studio 2010,Windows 7 X64,我有一个其他人编写的C#源代码,它有两种配置:释放和调试都以任何CPU为目标 当我发布时,一切都很好。在调试下启动时,我得到: System.InvalidOperationException: The 'OraOLEDB.Oracle.1' provider is not registered on the local machine. 我尝试过的所有事情: 我安装了带有所有默认设置的64位11.2 Oracle驱动程序管理员软件包 oracle bin文件夹设置在“我的路径”中 所有用户
System.InvalidOperationException: The 'OraOLEDB.Oracle.1' provider is not registered on the local machine.
我尝试过的所有事情:
- 我安装了带有所有默认设置的64位11.2 Oracle驱动程序管理员软件包
- oracle bin文件夹设置在“我的路径”中
- 所有用户都具有oracle文件夹的正确安全权限
- 我可以在cmd提示符下运行tnsping和其他命令
- 已成功运行regsvr32或oledb11.dll
出于某种原因,如果我在调试模式下专门针对x64,它就会工作。为什么它在任何CPU下运行时都要寻找x86驱动程序?同样,它在任何CPU的版本下都可以正常工作。即使您以任何CPU为目标,它也可能重复。听起来您的调试版本试图使用不存在的x86 db驱动程序。您是否已经尝试显式地以x64为目标?如果我专门以x64为目标,它可以工作,但它不应该与任何CPU一起工作吗?