0

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

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

或者我是否应该将整个 log4net 源代码项目添加为解决方案的一部分,这样我就不会受到 log4net 未来任何更改破坏我现有应用程序的影响?

其中一项要求是 log4net 中的未来版本更改具有破坏现有代码的潜在风险,对我的项目的影响应该最小。

最佳做法是什么?

我正在使用 C# 2.0。

谢谢,

4

3 回答 3

2

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

于 2013-01-01T17:30:23.320 回答
1

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

对于 log4net,兼容性已经被破坏,因为混乱的密钥和损坏的方法合同。没有人知道如何解决这个烂摊子:

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

于 2013-01-01T18:04:30.070 回答
0

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

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

或者我是否应该将整个 log4net 源代码项目添加为解决方案的一部分,这样我就不会受到 log4net 未来任何更改破坏我现有应用程序的影响?

这不是必需的。仅当您在 log4net.dll 中遇到任何问题并想要诊断自己时才需要它。

于 2013-01-01T17:33:28.410 回答