'Oracle.DataAccess.Client.OracleConnection' 引发异常,WinForms 应用程序

'Oracle.DataAccess.Client.OracleConnection' threw an exception, WinForms Application

我在 .NET Framework 4.5.2 和 Oracle 10g 数据库中有一个 WinForms 应用程序。当我使用 VS 2017 对其进行调试时,此应用程序工作得非常好,但是当我将其部署为 ClickOnce 应用程序时 [使用 ClickOnce 部署清单] 它不起作用并且我不断收到以下错误。

Image of the error upon connecting

相关错误文本如下:

just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleCommand' threw an exception. ---> Oracle.DataAccess.Client.OracleException: The provider is not compatible with the version of Oracle client
   at Oracle.DataAccess.Client.OracleInit.Initialize()
   at Oracle.DataAccess.Client.OracleCommand..cctor()
   --- End of inner exception stack trace ---

当 运行 来自 bin/Release 文件夹时它也运行得很好,我怎样才能让我部署的应用程序像我的 repo 中的本地 .exe 一样运行。

另外一条信息,这个 WPF 应用程序只是一个菜单,因此它可以运行我的其他 WinForms 应用程序,它们即使在发布时也能完美运行,我确保所有应用程序都针对 (x86) 架构并且所有 ClickOnce 设置都相同,但无济于事。

或者我什至可以在调试时重现错误以便修复?我试过强制 64 位模式 (因为那是我的机器)在项目的属性中,但它甚至没有加载。 在 ClickOnce 应用程序中它加载到登录页面,但在用户输入其凭据后建立连接时出现混乱。

这是我的第一个 post 所以请随意索取更多信息,如果我有任何不清楚的地方请告诉我。

提前感谢您的帮助!

问题已解决,但如果其他人遇到此问题是解决方案,则您必须手动找到合适的 DLL 并将其添加到您的项目中。我想正如其他答案中提到的那样,当错误显示“...客户端不兼容...”时,这也可能意味着相应的文件不存在。