gpt4 book ai didi

c# - 用于共享第 3 方 DLL 的 NuGet 或程序集文件夹?

转载 作者:太空宇宙 更新时间:2023-11-03 12:34:59 24 4
gpt4 key购买 nike

我有大约 10-15 个项目有单独的解决方案,这些解决方案在 Microsoft .NET 商店中引用了第 3 方 DLL。我们要解决的问题之一是跨项目使用的 DLL 版本的一致性(例如,所有项目中的 Netwonsoft 8.0.3,而不是根据项目创建时间而定的单独版本)。

我在之前的职位上看到过以两种不同的方式完成此操作,想知道是否还有其他选择可以解决此问题。

  1. 我已将企业 NuGet 用于公司内任何项目的解决方案中引用的所有第三方 DLL。 DLL 将被更新,然后供项目中的开发人员使用,以自行在解决方案中进行下拉和升级(如果需要)。
  2. 另一家公司在源代码中有一个程序集文件夹,其中包含所有“已批准”的第三方 DLL,并且所有引用都位于该目录中。

我确实看到了这个问题,但它只提供了上述两种解决方案之一:Where should you store 3rd party assemblies?

除了上面列出的选项之外,还有其他选项吗?

最佳答案

尽可能使用 NuGet。主要原因是 Git 不能很好地处理大型二进制文件,为此使用 LFS 没有多大意义,因为有一个有效的替代方案。 TFVC 对于大型二进制文件的问题较少,但如果您使用 TFVC,我会记住将来迁移到 Git。

请记住,在这种情况下,不仅 NuGet,而且 npm 和其他包源也可能感兴趣。

如果您想强制使用某个版本,请创建一个您挂接到 CI 管道中的自定义任务。这样您就可以轻松发出警告或设置某种策略。自定义任务可以获取 packages.config 文件,扫描引用的包,然后查询 TFS/VSTS 包管理提要以查看它是否使用最新版本(或使用最新的次要版本)...(或使用至少返回 x 个版本)...或从某处的 json 文件或 xml 文件中获取已批准的版本并对其进行验证...

关于c# - 用于共享第 3 方 DLL 的 NuGet 或程序集文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41398497/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com