如何在.Net项目中打包外部库?

Sco*_*Muc 6 .net c# dependency-management refix

我的很多项目都包含Castle/NHibernate/Rhino-Tools堆栈.令人困惑的是,Castle依赖于一些NHibernate库,NHibernate依赖于一些Castle库,而Rhino-Tools依赖于两者.

我已经在我的机器上构建了所​​有这三个项目,但我觉得复制NHibernate/Castle库有点多余,因为我使用NHibernate和Castle构建的结果库构建了Rhino-Tools.

现在,我将所有项目都包含在项目树中my/thirdparty/libs文件夹中的单独文件夹中.我应该只在项目中使用/ thirdparty/libs/rhino-tools并使用Castle/NHibernate库吗?这似乎在不重复文件方面具有逻辑意义,但我也喜欢将每个项目放在它自己的不同文件夹中.

你对此有何看法?

pon*_*tic 1

我为每个文件使用一个文件夹,这似乎是惯例。

  1. 如果你复制它们真的有什么区别吗?
  2. 如果你想换掉一个怎么办?假设您使用新的 O/R 映射器。直接删除 NHibernate 文件夹比有选择地删除 Rhino-Tools 文件夹中的 DLL 容易得多。
  3. 以此得出逻辑结论,您的 lib 文件夹中不会有任何文件夹组织,因为所有内容都使用 log4net :)