C# DbProviderFactorys.GetFactoryClasses()在卸载odp.net时不起作用

C# DbProviderFactorys.GetFactoryClasses()在卸载odp.net时不起作用,c#,asp.net,C#,Asp.net,我正在使用DbProviderFactorys.GetFactoryClasses()方法检查odp.net是否存在。在未安装odp.net或已安装odp.net时,它工作得非常好。但当我安装odp.net 10g时,它也显示了odp.net提供程序的存在。我已经检查了注册表,它没有显示odp.net。请建议一种更好的方法来检查odp.net是否存在。检查C:\Windows\Microsoft.net\Framework\v4.0.30319\config和C:\Windows\Microso

我正在使用DbProviderFactorys.GetFactoryClasses()方法检查odp.net是否存在。在未安装odp.net或已安装odp.net时,它工作得非常好。但当我安装odp.net 10g时,它也显示了odp.net提供程序的存在。我已经检查了注册表,它没有显示odp.net。请建议一种更好的方法来检查odp.net是否存在。

检查C:\Windows\Microsoft.net\Framework\v4.0.30319\config和C:\Windows\Microsoft.net\Framework\v2.0.50727\config等文件夹中的machine.config

你在元素中看到了什么

像这样的

  <system.data>
    <DbProviderFactories>
      <add name="Oracle Data Provider for .NET" invariant="Oracle.DataAccess.Client"
        description="Oracle Data Provider for .NET" type="Oracle.DataAccess.Client.OracleClientFactory, Oracle.DataAccess, Version=2.112.1.1, Culture=neutral, PublicKeyToken=89b483f429c47342" />
     .....
    </DbProviderFactories>
  </system.data>

.....

我相信11.2 ODAC有一个针对.net 4的oracle提供商。这是我遇到的一个难题。一遍又一遍地安装oracle一点也不好玩,哈哈