首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在.Net项目中打包外部库?

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

Stack Overflow用户
提问于 2009-02-13 08:27:39
回答 4查看 1.8K关注 0票数 6

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

这三个项目都是在我的机器上构建的,但是我觉得复制NHibernate/Castle库有点多余,因为我是使用NHibernate和Castle构建的库构建Rhino-Tools的。

现在,我在我的项目树中的/thirdparty/libs文件夹中包含了单独文件夹中的所有项目。我是否应该在我的项目中只有/thirdparty/ libs /rhino-tools,并从那里使用Castle/NHibernate库?这在不复制文件方面似乎是合乎逻辑的,但我也喜欢将每个项目放在它自己的不同文件夹中。

你对此有何看法?

EN

回答 4

Stack Overflow用户

发布于 2010-06-11 21:25:16

这是我们试图在Refix open source project on CodePlex中解决的问题之一。

其思想是,Refix将解析解决方案中的所有项目,并且在项目编译之前,将必要的二进制文件从计算机上的单个本地存储库复制到解决方案树中的文件夹中,并将项目指向它们。这样,就不需要提交二进制文件了。您的本地Refix库将从远程库中提取二进制文件(我们在repo.refixcentral.com上设置了一个库),您可以为您的团队/部门/公司设置一个中间库,该库可以保存任何未集中保存的其他软件。

它还将尝试解决版本号冲突- Visual Studio可能会过于容忍不匹配的组件版本号,导致解决方案在运行时编译但在加载依赖项失败时失败,因为需要两个不同的版本。

因此,要回答“如何在.Net项目中打包外部库”的问题,我们的愿景是不要这样做-您只需在构建脚本中包含一个重修复步骤,并让它为您操心。

票数 3
EN

Stack Overflow用户

发布于 2009-02-13 08:33:18

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

  1. ,如果你复制它们,真的有区别吗?,

  1. ,如果你想换掉一个,该怎么办?假设您使用新的O/R映射器。只删除NHibernate文件夹要比有选择地删除Rhino-Tools文件夹中的DLL容易得多。
  2. 根据逻辑得出结论,您的库文件夹中不会有任何文件夹组织,因为所有内容都使用log4net :)
票数 1
EN

Stack Overflow用户

发布于 2009-02-13 09:39:50

将额外的探测路径添加到app.config文件,以定位依赖项dll。这样你就可以只有一份你想要的东西了。尽管使用此功能有一些怪癖(您必须以某种方式创建文件夹结构)。有关该标记的更多详细信息,请查看here

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/545166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档