在WinForms应用程序中引用log4net DLL的正确方法

时间:2013-01-01 17:28:07

标签: c# log4net

我的WinForms 2.0应用程序有2个程序集。第一个程序集处理GUI和项目特定代码,第二个程序集是我放置所有可重用代码的地方。这两个项目都是解决方案的一部分;第一个项目引用第二个项目。

现在两个项目都需要引用log4net.dll文件。我应该在每个项目中添加一个引用,指向我已下载log4net源代码并构建它的文件夹;或者我应该将log4net.dll文件复制到每个项目目录中吗?

或者我是否还应该将整个log4net源代码项目添加为解决方案的一部分,这样我就可以避免将来更改log4net以破坏现有应用程序?

其中一个要求是log4net中的未来版本更改可能会破坏现有代码,对我的项目影响最小。

最佳做法是什么?

我正在使用C#2.0。

谢谢,

3 个答案:

答案 0 :(得分:2)

我通常构建项目并将log4net dll放在libs文件夹中,这是一个解决方案文件夹。这两个项目都引用了这个dll(libs文件夹)。

答案 1 :(得分:1)

学会依赖NuGet,它会自动管理您的依赖项并将它们存储在适当的文件夹中。

至于log4net,由于混乱的密钥和破碎的方法合同,兼容性已经被打破。没人知道如何解决这个烂摊子:

http://netpl.blogspot.com/2012/03/pathetic-breaking-change-between.html

答案 2 :(得分:0)

  

我应该将log4net.dll文件复制到每个项目目录中吗?

没有。将其保存在单独的依赖项文件夹中。对于Solution中的所有项目,此文件夹应该是通用的。您应该将log4net.dll引用到每个项目中(需要此组件)。

  

或者我是否还应该将整个log4net源代码项目作为解决方案的一部分添加,以便我可以避免将来破坏现有应用程序的任何更改?

不是必需的。只有在中您遇到log4net.dll中的任何问题且想要自己诊断时才需要