Oracle.DataAccess FileNotFoundException



我正在做ASP.NET MVC3,我对ODP.NET,ORACLE.DATAACCESS。

每当我尝试进行单元测试时,它都会抛出FileNotFoundException。我以为我已经安装并使用了oracle.dataaccess v4.112.3.0,但是我的应用程序一直在寻找'oracle.dataaccess,版本= 4.121.1.0'。

我仍然可以在我的GAC中找到'oracle.dataaccess v4.112.3.0',并通过我在Machine.config中发现的fusionLog。所以我想有一些版本的ODP.NET冲突。

<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=4.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  <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.112.3.0, Culture=neutral, PublicKeyToken=89b483f429c47342" />
  <add name="Microsoft SQL Server Compact Data Provider" invariant="System.Data.SqlServerCe.3.5" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=3.5.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91" />
</DbProviderFactories>

所以,我尝试修改Machine.config中的版本,但它不起作用。

有人可以帮助我解决此问题吗?

您可以随时在web.config(或Machine.config)中使用运行时重定向的特定版本,前提

<runtime>
   <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
         <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"/>
         <bindingRedirect oldVersion="4.121.1.0" newVersion="4.112.3.0"/>
      </dependentAssembly>
   </assemblyBinding>     
</runtime>

根据我的经验,这个技巧从10.1重定向到任何较新版本时都起作用,但是一旦我们在试图向后重定向时遇到了神秘的错误(请参阅此),因此我建议您更好地找到这种情况的确切原因 - 查看您的 *.csproj where.dataAccess恰好引用和/或拆卸您的二进制文件以检查参考库的参考。(您使用的第三方lib而不是代码,而不是代码。

相关内容

  • 没有找到相关文章

最新更新