簡體   English   中英

Oracle.DataAccess FileNotFoundException

[英]Oracle.DataAccess FileNotFoundException

我正在做asp.net mvc3,而ODP.NET,Oracle.DataAccess有問題。

每當我嘗試進行單元測試時,都會引發FileNotFoundException。 我以為我已經安裝並正在使用Oracle.DataAccess v4.112.3.0,但是我的應用程序一直在尋找“ Oracle.DataAccess,版本= 4.121.1.0”。

仍然可以在我的GAC中以及通過我在machine.config中找到的FusionLog找到“ Oracle.DataAccess v4.112.3.0”。 因此,我猜想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)中使用運行時重定向來強制使用特定版本,前提是跨版本的Oracle dll界面保持不變:

<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到底是哪個Oracle.DataAccess被引用和/或反匯編您的二進制文件,以檢查引用的庫的引用。 (有可能不是您使用的某些第三方庫代碼而是您想要的ODP.NET確切版本的代碼)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM