Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为什么是';OraOLEDB.Oracle.1';仅在调试模式下运行时,提供程序未在本地计算机上注册?_C#_Visual Studio 2010_Windows 7 X64 - Fatal编程技术网

C# 为什么是';OraOLEDB.Oracle.1';仅在调试模式下运行时,提供程序未在本地计算机上注册?

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文件夹设置在“我的路径”中 所有用户

我有一个其他人编写的C#源代码,它有两种配置:释放和调试都以任何CPU为目标

当我发布时,一切都很好。在调试下启动时,我得到:

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一起工作吗?