3

我需要让我的外部 dll 依赖项(自动映射,其他......)进入我可以在我的构建服务器上构建它们的情况。我还想让它们进入颠覆,以便构建服务器可以接收它们。

所以我对整个“lib”文件夹都是新手。我搜索了谷歌,但似乎有点假设,这里没有基本的操作。我拥有的书没有进入它。我已经很久没有工作上的导师了,甚至没有我可以问问题的人......我真的很想了解我应该在这里做什么的基本原理。

我在 .Net 中编写,使用 Jenkins 作为我的 CI 服务器(新的)和 msbuild(也是新的)。我听到 svn:externals (不要计算), NuGet ....

请帮忙!

4

3 回答 3

3

假设我的解决方案名为 MySolution 并存储在 C:\MySolution 中,那么我有三个用于存放二进制文件的目录,均由源代码控制管理。

  • vendor第三方框架的源代码。如果需要,它们会被构建和签名(使用我的密钥)并被视为代码是我自己的。这有时对于“修复”框架中的缺陷或调试它们的源以了解它失败的原因是必要的。
  • src\packages由 nuget 管理的模块(我希望将其与我的“lib”文件夹结合起来,但尚不支持)
  • lib编译的库,我没有源代码并且不由 nuget 管理。

(我省略了诸如“src”、“sample”、“setup”、“documentation”和“scripts”之类的文件夹,以保持特定于 OP 的答案)。

最近几个月,我开始在 lib 文件夹中为“包”创建自己的 nuget 包,这样我就可以将它们全部迁移到“包”中。它发布到私人 nuget 服务器。它还简化了跨解决方案的二进制文件管理。

我曾经使用外部对象,但它们会在一段时间后造成分支噩梦,因为您必须分支并将外部依赖项固定到。使用 nuget,这不再需要。

于 2012-06-09T06:50:49.463 回答
0

我肯定会避免将二进制文件放在源代码管理中。您最好创建自己的 nuget 存储库,其中包含您喜欢的软件包版本,并使用 nuget restore 或其他“补充”构建依赖项的方式。我使用一个名为 nuget-update.bat 的简单批处理文件,它只查看所有 packages.config 文件并获取它找到的任何依赖项。

于 2012-06-09T07:18:44.727 回答
0

您似乎就同一主题发布了一系列问题。我推荐 NuGet,因为它变得很重要并被 Microsoft 大力推广。但是,那里没有许多旧库,您可能仍需要保留一个 lib 文件夹。我的开源项目#SNMP 就是一个很好的例子,

我尝试使用尽可能多的 NuGet 包,甚至加紧维护一些依赖项,例如 DockPanel Suite。

于 2012-06-09T11:21:16.467 回答