在源代码管理中存储第 3 方 DLL (Azure DevOps/TFS/Git)

Storing 3rd-party DLLs in source control (Azure DevOps/TFS/Git)

我们有一个内部 TFS(Azure DevOps 2019)服务器和许多 Visual Studio 解决方案,其中一些解决方案引用了各种第 3 方 DLL(最多十几个)。这些通常是购买的库,因此不以 NuGet 包的形式存在。我们将这些 DLL 存储在源代码管理中,在源代码旁边的分支中。

在源代码控制中存储二进制文件通常不受欢迎,我们现在正在考虑从 TFS 转移到 Git,这似乎是一个更严重的问题。我有哪些选择?鉴于这些 DLL 很少更改,如果将它们存储在 Git 中真的会成为问题吗?有些文件已经 5 年多没有改变了。

只是在寻找有关如何处理此类依赖关系的任何指导。我们可以将第 3 方库打包为 NuGet 包并将它们存储在我们的 Azure DevOps "repository" 而不是源代码管理中,还是不值得付出努力?

您有 2 个选择:

  • 使用 git lfs 用于存储二进制文件,因为 Azure DevOps 提供此功能。在项目中设置和配置 git lfs 以防止意外提交二进制文件通常是个好主意。

  • 创建 nuget 包并将它们推送到自定义 Nuget 源中,因为创建一个非常容易(在 Azure DevOps 的 Artifact 部分)。如果您想清楚地 see/manage 依赖项的版本控制,此选项可能会稍微好一些。

两者都不太难做到。 选择您认为更适合您的项目或您认为更适合您的项目的项目。