你把第三方图书馆放在哪里?

mpe*_*pen 23 .net c# visual-studio

我有一堆.dll装配,比如HtmlAgilityPackMoreLinq.我应该把这些文件放在哪里?我经常把它扔到我Projects文件夹的某个地方,但后来我总是在为他们挖掘.是否有标准的地方放置它们?

Pat*_*her 14

没有标准的地方可以放置它们,但请确保:

  • 把它们放在一个地方
  • 将它们包含在源代码管理中.

我将所有必需的dll放在我的解决方案中名为"Dependencies"的顶级目录中,与项目文件夹并行.我将它们放在源代码控制中,这样当新的开发人员检查解决方案时,它就会编译并正常工作.这是唯一的出路.

我只包含绝对需要的.dll文件.这样可以保持轻松,这很好,但是当我找到MVC Contrib的其他部分或我需要的任何内容时,我必须找到解压缩的目录,甚至可能不在我的计算机上!其他人将整个库目录(readme.txt和all)作为其源代码控制的一部分链接到解决方案.这可以确保您和未来的开发人员拥有他们需要的一切,但增加了一点点自重.要么是一个好策略.

  • 必须控制DLL依赖项,否则您无法保证每次签出或获取最新信息时都会构建源代码.你多久更换一次lib vesions?不经常.我将分支所有内容,更新整个项目中的DLL引用,构建所有,运行所有测试,并且一旦快乐与主"trunk"重新集成.如果个别开发人员使用他们喜欢的任何DLL版本,并且他们不受版本控制,那么您将陷入痛苦的世界. (5认同)

Ian*_*nT8 11

将"Lib"文件夹与源项目放在同一级别是一种常见的方式.

说实话,这不是我的项目所依赖的依赖项,我发现很难管理,它是依赖项所依赖的依赖项.我想提一下NHibernate,Castle Windsor以及各种Castle Windsor设施.在我的上一个项目中让所有这些人一起玩,花了我很多时间.

对于开源项目,我也喜欢使用源代码,因为有时调试源代码很有用.(有时因为文档很差,你必须阅读源代码以了解它是如何工作的).我已经看到VS项目安排,以便项目同时引用DLL,VS知道在哪里找到源代码,因为我写的我不太记得如何做到这一点.

因此,DLL的Lib文件夹对我有用; 我经常称它为"共享依赖".

至于开源源代码,我没有标准的版本方式,因为每个项目的结构不同,并且具有不同的构建过程.我不喜欢修改开源项目结构或构建方法,因为那时我负责它.如果由于某种原因,它不会构建,或构建不正确,或产生错误的DLL,原因将非常难以追查,我必须深入解决所有我不关心的所有所有.


Ian*_*cer 5

在解决方案目录下的文件夹中,例如"外部"或"库".这样,您的持续集成系统(或其他团队成员)可以从源控制系统中提取一个根并获得所需的一切.

在SVN中,使用svn:externals从不同的根目录中提取该目录,以便您可以在解决方案之间轻松共享库DLLS(和库项目).

  • 关于`svn:externals`的注释+1.那很整齐! (2认同)