我们在当前项目中设置了log4net,以使用AdoNetAppender将日志条目写入SQL Server数据库。这一切都正常,但由于某些原因,为了使其工作,我们必须在System.Data.dll上将Copy Local设置为true - 如果bin目录中不存在此DLL,则log4net将不会输出到SQL Server并将丢失有关丢失的DLL的错误。
这是log4net中的错误吗?我认为,由于System.Data.dll是一个.Net框架组件,log4net可以在GAC中找到它。
供参考,我们使用的是log4net 1.2.10.0和.Net 4.5
编辑 - 为了更好的可读性,如果有其他人遇到此问题,我使用的原始XML配置将connectionType定义为:
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data" />
将其更改为以下内容解决了问题。
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
答案 0 :(得分:9)
你能试试吗?我不确定什么版本的System.Data适用于.NET 4.5,但无论如何这应该可行:
<connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />