nuget:我应该提交packages文件夹的全部内容吗?

Omu*_*Omu 46 asp.net-mvc nuget

我开始使用nuget并安装了一些软件包,其中大部分都有大约200 KB最大但NUnit有3MB.

我的解决方案是开源的,很多人都下载了,我只想:我应该按原样提交整个包文件夹还是忽略非dll文件

你们是怎么做的?

Mar*_*ath 81

NuGet现在能够重新下载缺少的包作为预构建步骤,这意味着您只需要提交packages.config文件(并在工具文件夹中包含nuget.exe).

有关更多详细信息,请使用NuGet读取而不将包提交到源代码管理.

  • 这些天绝对是正确答案.接受的答案已过时.如果可能,OP应该在他同意的情况下更改接受的答案. (6认同)
  • "正确答案"真的取决于你想要什么.脱机工作是包含软件包的一个原因,另一个是在您依赖的软件包被删除时应对.软件的悲惨现实有时候会变得依赖于不再支持的旧库.如果他们从nuget中消失而你没有副本那么你就有点搞砸了. (5认同)
  • 在断开连接的环境中开发网站?如果那真的发生了那么我不想为那家公司工作. (4认同)
  • @NickG我不确定对此有"正确的答案" - 这是一个权衡(存储库大小与在断开连接的环境中工作的能力/确定依赖关系不能改变或消失).对我来说,重要的是代码在从源代码控制中获得新的代码后成功构建,并且该技术在保持repo大小较小的情况下运行良好. (3认同)
  • @NickG让你在海滩工作的公司怎么样? (3认同)
  • 虽然我通常只关心启用离线工作,并且与这是否是一个网站项目无关,但我希望在首次从存储库中检出开源项目的代码时存在非常临时的互联网连接。这是运行 NuGet 恢复包功能的最佳时机;之后,即使在海滩上工作,所有必要的包也将在工作副本中离线可用。 (2认同)

lan*_*der 14

我个人包括整个包文件夹.没有什么比获得一个开源项目然后不得不追捕运行它所需的dll更糟糕的了.

您可以只包含.nupkg文件并让用户运行update-package,但是您假设他们已经安装了nuget并记得运行它.

我认为开源项目的速度要快得多.

  • 这个答案是过时的.如果您正在阅读2015年或之后的内容 - >请参阅下面的Mark Heath的回答! (5认同)