我想从Visual Studio 2015 Enterprise Update 3连接Oracle。 安装ODT For Visual Studio 2015后,要添加与数据提供者的新连接Oracle数据库(ODP.NET托管驱动程序)弹出窗口似乎很奇怪,即使使用空连接字符串-added ss-,测试连接也会成功,按下确定时会发生意外错误。< / p>
64位机器,卸载了ODAC,修复了Visual Studio 2015并安装了ODT for vs 2015.
谢谢和问候,
答案 0 :(得分:3)
更新22/11/2019
大家好,
在花费数小时(甚至可能数年)尝试解决Visual Studio的Oracle问题之后,我发现如果已安装VS2017和VS2019并重新安装了ODTforVSXXX(在我的情况下为ODTforVS2017_122011.exe),安装程序将在其中添加所有设置最新的Visual Studio(在本例中为VS2019)的文件“ devenv.exe.config”。要解决该错误,必须将这些设置从“ 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>
我希望它能有所作为。 干杯!
答案 1 :(得分:2)
这太晚了,但是...在我的情况下,问题是,ODT在更新后以某种方式失去了与TNSNAMES文件的连接。我遇到了完全相同的错误:“ ODP.NET,托管驱动程序中发生意外错误”,但“测试连接” =成功。
我所做的是卸载VS的ODT并重新安装。确保现在以管理员身份运行VS。接下来,我在连接时遇到另一个错误:“在可用的别名列表中找不到xxxxx”。这是TNSNAMES.ora错误或找不到的线索。
在Visual Studio中,依次浏览“服务器资源管理器”->“修改连接”,然后又返回了更扩展的对话框。
我单击了“搜索...”按钮(在向导中)以找到正确的Tnsnames.ora,然后选择“复制”选项以将TNSNAMES.ora复制到ODT所需的位置:“ c:\ program files (x86)\ vs2017 \ network \ admin \的Oracle开发人员工具”。这是您必须是Admin的地方,否则复制将失败。
此时,您可以选择数据源名称,它应该可以使用。希望这会有所帮助,它一定可以解决我的问题。您的步骤可能会有所不同,但是问题在于ODT在更新后丢失了TNSNAMES副本。