为什么我要将NuGet包dll添加到源代码控制?

时间:2014-01-17 06:22:59

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

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

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

3 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:1)

稳定的主干总是指某些版本的dll。由于更改了功能参数等,新版本或旧版本的dll可能不兼容。 因此,将你的dll保持在版本控制范围之外可能会导致你的dll版本失效。

另请参阅NuGet's policy on deleting packages

答案 2 :(得分:1)

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