【问题标题】:Why should I add NuGet packages dlls to source control?为什么我应该将 NuGet 包 dll 添加到源代码管理?
【发布时间】:2014-02-06 09:19:39
【问题描述】:

我习惯于将 dll 保留在源代码控制之外。使用 NuGet 包也可以轻松完成。

但是,我注意到一些流行的操作系统项目(例如https://github.com/octokit/octokit.net、https://github.com/AutoFixture/AutoFixture)更喜欢保持 dll 签入。为什么会这样?

【问题讨论】:

    标签: c# dll version-control nuget nuget-package-restore


    【解决方案1】:

    所以,Mark Seemann 在his post 中完全回答了这个问题。我完全同意所有观点。

    【讨论】:

    【解决方案2】:

    您还会发现一些流行的操作系统项目正好相反。一旦一个包被推送到 NuGet 存储库,它就再也不会被触及。我认为作为包所有者,您甚至没有能力修改现有包。您必须使用另一个版本号上传更新版本。所以每个推送的包都是独一无二的。 甚至已删除的包也会保留在后台。因此,如果您的某些项目引用了已删除的包,它仍然会被恢复,但它不再列在 repo 中。 我不喜欢混淆我的 source 控制的事实,并且我喜欢只检查运行程序所需的东西。 实际上,您正在依赖外部资源。如果您不喜欢这个事实,还有另一种选择。您可以创建自己的存储库,可能是基于网络共享的文件,您可以在其中保存您正在使用的软件包的副本。

    【讨论】:

      【解决方案3】:

      稳定的主干总是指某些版本的 dll。由于更改了函数参数等,较新或较旧版本的 dll 可能不兼容。 因此,将您的 dll 置于版本控制之外可能会导致您的工作 dll 版本丢失。

      另外,请参阅NuGet's policy on deleting packages。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-05
      • 1970-01-01
      • 2015-10-30
      • 2010-09-09
      • 1970-01-01
      • 2020-02-24
      • 1970-01-01
      相关资源
      最近更新 更多