引用 Enterprise Library 5.0 时的一个警告和运行时错误及解决办法
最近在使用 Enterprise Library 5.0 时,发现一个类似如下的警告信息:C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1360,9): warning MSB3253
·
最近在使用 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"'.
在网上查了半天,得到了下面三个信息:
- 微软将弃用 System.Data.OracleClient,不再进行改进,只提供必要的 Bug 修正。需要使用 Oracle 的,可以使用其他第三方模块,具体可以参考原文和下面的参考文章。
- Enterprise Library 5.0 中有对 System.Data.OracleClient 的引用。
- Visual Studio 2010 新建项目的默认的目标框架使用的是 .NET Framework 4 Client Profile 即简化版本,该简化版本不包含 System.Data.OracleClient 的引用,需要使用 .NET Framework 4 作为目标框架,才能解决上面的问题。
具体操作:
- 右键单击项目,选择“属性”,在”应用程序“页的”目标框架“中选择”.NET Framework 4“;
- 然后在弹出的”目标 Framework 更改“对话框中选”是“;
- 重新编译即可解决问题。
参考:
更多推荐



所有评论(0)