我有一个包含不同项目的C#解决方案。在这些项目上,我有一些普通的nuget包,例如Newtonsoft.Json,EntityFramework等。但是当我在另一台计算机上签出我的源代码并进行构建时,它不会复制Dlls c# - 从git checkout 后缺少nuget dll-LMLPHP

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

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

nuget install packages.config

最佳答案

使用NuGet的惯用方式(例如,与npm不同,在典型情况下,它会提交node_packages)是仅提交您的packages.config。 Visual Studio将在packages/文件夹中检测到丢失的程序包,并在生成时还原它们,而在命令行中的nuget restore将执行相同的操作。

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

如果您担心包裹丢失,我有两点意见:


Nuget.org对此非常小心。他们已经进行了设置,以便只能软删除软件包,这意味着还原可以看到那些版本,而nuget install则不能。
许多人运行自己的内部软件包服务器(例如Klondike),充当nuget.org的代理。如果您希望打包内部库并使用nuget在项目中分发它们,而又不将其发布到Internet,则这也将很有用。

关于c# - 从git checkout 后缺少nuget dll,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38787957/

10-15 12:36