引用 Enterprise Library 5.0 时的一个警告和运行时错误及解决办法

最近在使用 Enterprise Library 5.0 时,发现一个类似如下的警告信息:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): warning MSB3253: 未能解析引用的程序集“Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL”,因为它对不在当前目标框架“.NETFramework,Version=v4.0,Profile=Client”中的“System.Data.OracleClient, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”具有依赖关系。请删除对不在目标框架中的程序集的引用,或考虑重新确定项目的目标。

该信息并不影响编译,但是却在运行时出现了异常:

“System.Configuration.ConfigurationErrorsException”类型的未经处理的异常出现在 System.Configuration.dll 中。

其他信息: Invalid TraceListenerData type in configuration 'listenerDataType="Microsoft.Practices.EnterpriseLibrary.Logging.Database.Configuration.FormattedDatabaseTraceListenerData, Microsoft.Practices.EnterpriseLibrary.Logging.Database, Version=5.0.505.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"'.

在网上查了半天,得到了下面三个信息:

  1. 微软将弃用 System.Data.OracleClient,不再进行改进,只提供必要的 Bug 修正。需要使用 Oracle 的,可以使用其他第三方模块,具体可以参考原文和下面的参考文章。
  2. Enterprise Library 5.0 中有对 System.Data.OracleClient 的引用。
  3. Visual Studio 2010 新建项目的默认的目标框架使用的是 .NET Framework 4 Client Profile 即简化版本,该简化版本不包含 System.Data.OracleClient 的引用,需要使用 .NET Framework 4 作为目标框架,才能解决上面的问题。

具体操作:

  1. 右键单击项目,选择“属性”,在”应用程序“页的”目标框架“中选择”.NET Framework 4“;
  2. 然后在弹出的”目标 Framework 更改“对话框中选”是“;
  3. 重新编译即可解决问题。

参考:

  1. Enterprise Library 5.0与.NET Framework框架版本问题(vs2010)
  2. 微軟将弃用 System.Data.OracleClient

你可能感兴趣的:(编程,library,框架,.net,oracle,windows,2010)