在源代码控制(Azure DevOps/TFS/Git)中存储第三方DLL文件

3

我们有一个内部TFS(Azure DevOps 2019)服务器和许多Visual Studio解决方案,其中一些引用了各种第三方DLL文件(最多十几个)。这些通常是购买的库,因此不存在于NuGet软件包中。我们将这些DLL文件存储在源代码控制中,与源代码放在同一分支下。

将二进制文件存储在源代码控制中通常不被赞成,现在我们正在考虑从TFS转移到Git,在那里,这似乎更加成问题。我的选择是什么?鉴于这些DLL文件很少或几乎从未更改,如果它们存储在Git中,这真的会成为问题吗?其中一些文件已经没有更改超过5年。

只是想寻求关于如何处理这些依赖项的任何指导。我们可以将第三方库封装成NuGet软件包,并将它们存储在Azure DevOps“存储库”而不是源代码控制中,这样做值得吗?


1
鉴于您在此标记了DevExpress,您是否尝试使用DevExpress NuGet feed?https://nuget.devexpress.com/ - Brendon
1个回答

2
您有两个选项:
  • 使用git lfs,它用于存储二进制文件。Azure DevOps提供了这个功能,因此在项目中设置和配置git lfs通常是一个好主意,以防止意外提交二进制文件。

  • 创建nuget包并将其推送到自定义Nuget feed中,因为在Azure DevOps的Artifact部分创建一个非常容易。如果您想清晰地查看/管理依赖项的版本,则此选项可能稍微更好。

两者都不难做到。选择您认为更适合您的项目或您认为对您的项目更加持久的那个选项。

我同意@Philippe的观点,我会使用第二个选项-自定义Artifacts feed,并查看Nuget Package Explorer https://github.com/NuGetPackageExplorer/NuGetPackageExplorer,它将帮助您轻松打包DLL甚至可以在应用程序中直接推送到Artifacts。 - Etienne
1
你能解释一下如何创建和发布Nuget包吗?因为这很“容易”?我已经试了整整一周,但是一无所获。DevOps文档对此毫无用处。它假设你已经知道如何创建和发布Nuget包,并仅提供通过Artifacts重新发布它们的步骤。我还没有找到一个好的解释来说明如何创建和发布Nuget包。每个人似乎都认为每个人都知道如何做这件事。我迷失了。 - Bryan Williams
我已经反复执行了Nuget->Artifacts步骤,并且没有出现任何错误。项目构建没有错误,但是当有人连接到我的源时,它是空的。 - Bryan Williams

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接