我需要将我的外部dll依赖项(automap,其他......)转换为可以在构建服务器上构建它们的情况。我还想让他们进入subversion,因此构建服务器可以接收它们。
所以我是整个'lib'文件夹的新手。我搜索过谷歌,但似乎有点假设,这里没有什么基础知识。我拥有的书籍没有进入。自从我在工作中担任导师以来,已经有很长一段时间了,甚至是我可以提出问题的人......我真的很想了解我应该在这里做什么的基本原理。
我在.Net中写道,使用Jenkins作为我的CI服务器(新的)和msbuild(也是新的)。我听到svn:externals(不要计算),NuGet ....
请帮忙!
答案 0 :(得分:3)
假设我的解决方案名为MySolution并存储在C:\ MySolution中,那么我有三个二进制目录,全部由源代码控制管理。
(我省略了像“src”,“sample”,“setup”,“documentation”和“scripts”这样的文件夹,以保持特定于OP的答案。
最近几个月我开始在lib文件夹中为“packages”创建自己的nuget包,所以我可以将它们全部迁移到“packages”。它发布到私人nuget服务器。它还简化了跨解决方案的二进制文件管理。
我习惯使用externs,但它们会在一段时间后构成分支噩梦,因为你必须分支并固定外部依赖项。使用nuget,不再需要它。
答案 1 :(得分:0)
我绝对会避免将二进制文件放在源代码管理中。您最好创建自己的nuget存储库,其中包含您的首选软件包版本,并使用nuget restore或其他一些“重新水化”依赖项进行构建的方法。我使用一个名为nuget-update.bat的简单批处理文件,它只查看所有packages.config文件并获取它找到的任何依赖项。
答案 2 :(得分:0)
您似乎在同一主题上发布了一系列问题。我推荐NuGet,因为它变得很重要,并且很难被微软推广。但是,许多旧库在那里不可用,您可能仍需要保留lib文件夹。我的开源项目#SNMP就是一个很好的例子,
我尝试使用尽可能多的NuGet包,甚至加强了维护一些依赖项,例如DockPanel Suite。