“测试连接成功”但“ODP.NET 托管驱动程序中发生意外错误”

use*_*479 3 oracle odp.net visual-studio odp.net-managed visual-studio-2015

我想从 Visual Studio 2015 Enterprise Update 3 连接 Oracle。安装 ODT For Visual Studio 2015 后,添加与数据提供程序 Oracle 数据库(ODP.NET 托管驱动程序)弹出窗口的新连接似乎很奇怪,即使连接字符串为空,测试连接也成功 -添加了 ss-,当按确定时,出现意外错误。

64位机器,卸载ODAC,修复Visual Studio 2015,安装ODT for vs 2015。

感谢致敬,

错误

小智 5

更新 22/11/2019

大家好,

在浪费了几个小时(也可能是几年)试图用 Visual Studio 解决 Oracle 问题之后,我发现如果安装了 VS2017 和 VS2019 并重新安装了 ODTforVSXXX,在我的例子中是 ODTforVS2017_122011.exe,安装程序会在文件中添加所有设置“ devenv.exe.config”,在本例中为 VS2019。要解决该错误,您必须将这些设置从“devenv.exe.config”(2019)复制到“devenv.exe.config”(2017)。

<dependentAssembly>
    <assemblyIdentity name="Oracle.ManagedDataAccess" publicKeyToken="89b483f429c47342" culture="neutral" />
    <codeBase version="4.122.1.0" href="c:\program files (x86)\oracle developer tools for vs2017\odp.net\managed\common\oracle.manageddataaccess.dll" />
</dependentAssembly>
<dependentAssembly>
    <assemblyIdentity name="Oracle.ManagedDataAccess.EntityFramework" publicKeyToken="89b483f429c47342" culture="neutral" />
    <codeBase version="6.122.1.0" href="c:\program files (x86)\oracle developer tools for vs2017\odp.net\managed\common\ef6\oracle.manageddataaccess.entityframework.dll" />
</dependentAssembly>

<system.data>
      <DbProviderFactories>
         <remove invariant="Oracle.ManagedDataAccess.Client" />
      <add name="ODP.NET, Managed Driver" invariant="Oracle.ManagedDataAccess.Client" description="Oracle Data Provider for .NET, Managed Driver" type="Oracle.ManagedDataAccess.Client.OracleClientFactory, Oracle.ManagedDataAccess, Version=4.122.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
        <remove invariant="Microsoft.SqlServerCe.Client" />
        <remove invariant="Microsoft.SqlServerCe.Client.3.5" />
        <remove invariant="Microsoft.SqlServerCe.Client.4.0" />
        <add name="Microsoft SQL Server Compact 4.0 Client Data Provider" invariant="Microsoft.SqlServerCe.Client.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact 4.0 Client" type="Microsoft.SqlServerCe.Client.SqlCeClientFactory, Microsoft.SqlServerCe.Client, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
      </DbProviderFactories>
    </system.data>
Run Code Online (Sandbox Code Playgroud)

我希望它有所作为。干杯!