C# 当主可执行文件使用旧的log4net版本时,在dll中使用LinqToExcel

C# 当主可执行文件使用旧的log4net版本时,在dll中使用LinqToExcel,c#,dll,log4net,linq-to-excel,C#,Dll,Log4net,Linq To Excel,我正在为第三方程序编写扩展(dll)。主程序使用log4net版本1.2.10。我想使用LinqToExcel读取Excel文件,这也取决于更新版本的log4net 当我从主可执行文件中使用log4net.dll时,我在使用扩展名时得到一个System.BadImageFormatException 当我用LinqToExcel的较新版本替换log4net.dll时,我从主程序得到一个System.NullReferenceException 有没有办法让它工作,或者我必须使用其他方式来读取Ex

我正在为第三方程序编写扩展(dll)。主程序使用log4net版本1.2.10。我想使用LinqToExcel读取Excel文件,这也取决于更新版本的log4net

当我从主可执行文件中使用log4net.dll时,我在使用扩展名时得到一个
System.BadImageFormatException

当我用LinqToExcel的较新版本替换log4net.dll时,我从主程序得到一个
System.NullReferenceException

有没有办法让它工作,或者我必须使用其他方式来读取Excel文件

解决方法:我确实从LinqToExcel中删除了所有日志记录,并在没有log4net引用的情况下重建了它


我建议您使用dll进行调试以发现问题。如果您对查找问题不感兴趣,我建议您使用ADO.net从excel文件获取数据,就像从数据库读取数据一样

如果您拥有主程序的所有权,您可以使用其他相关程序集使用的版本(如果更新的话)更新log4net 1.2.10版。理论上,log4net应该是向后兼容的。 尽管我看到最新版本使用的log4net版本比你的主应用版本要旧,特别是1.2.9版本和1.2.1.40796版本

由于您的主应用程序使用较新的程序集,并且不希望修改LinqToExcel,因此您可以将对log4net 1.2.10的引用包装到程序集中。相反,您可以拥有自己的LinqToExcel构建,该构建只使用log4net 1.2.10