问题描述:
在.net framework 4.7.2 框架中的winform项目,引入log4net作为日志组件使用,一切正常,可以正常输出日志。
但项目框架升级到.net 8.0后,log4net的使用就报错,虽然网上有很多关于.net 8.0配置并使用log4net的方法,但有些我尝试没有用,有些代码所在位置看不懂在哪用。
最后,我想到了.net 8.0肯定是可以向下兼容的,原来在.net framework 4.7.2使用的方法,也可以放在.net 8.0来参考使用!
我对比了两个框架各文件的位置,发现.net framework 4.7.2使用log4net组件,需要在Properties\AssemblyInfo.cs文件中追加一句:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config",ConfigFileExtension ="config",Watch = true)]。
可是.net 8.0框架中没有Properties文件夹,也没有其下的AssemblyInfo.cs文件(原因是.net 8.0以另一种方式生成AssemblyInfo内部的相关内容)!
我的解决方法:
直接在.net 8.0框架手动建立Properties\AssemblyInfo.cs文件,在AssemblyInfo.cs文件里,只加入一句:[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config",ConfigFileExtension ="config",Watch = true)]
(因为其他内容在.net 8.0框架是以另一种方式在其他文件生成,此处若是再添加就会重复报错)。问题得以解决!