从git退房后,nuget dlls失踪了

时间:2016-08-05 11:18:32

标签: c# .net git nuget nuget-package

我有一个包含不同项目的C#解决方案。在这些项目中,我有一些正常的nuget包,如Newtonsoft.Json,EntityFramework等。但是当我在另一台机器上检查我的源代码并构建它时,它不会复制Dlls enter image description here

我已将整个解决方案文件夹提交给git,我可以在Bitbucket中看到包文件夹和内容。我做错了什么?

P.S:我知道我可以跑到下面来恢复我的包裹,但这是一个很大的痛苦。 P.S.S:我已经搜索过了thisthis。我正在寻找一种方法来防止它再次发生

nuget install packages.config

1 个答案:

答案 0 :(得分:3)

使用NuGet的惯用方法(与npm不同,例如,提交node_packages的典型方式)是仅提交packages.config。 Visual Studio将检测packages/文件夹中缺少的包并在构建时恢复它们,并且命令行中的nuget restore也会这样做。

原因是二进制文件比文本文件大,并且不可扩散(即不可能存储增量)。我不确定git是否像svn那样工作,但是nuget的作者并不只是为那些使用git的人写作。

如果你担心包裹丢失,我有两点:

  1. Nuget.org非常小心那是不可能的。他们进行了设置,以便只能对软件包进行软删除,这意味着恢复可以看到这些版本,而nuget install则不会。
  2. 许多人都运行自己的内部包服务器(如Klondike),它作为nuget.org的一种代理。如果您想要打包内部库并使用nuget将它们分发到项目中,而不将它们发布到互联网,这也是有益的。