c# - 从 git checkout 后 nuget dll 丢失

标签 c# .net git nuget nuget-package

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

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

P.S:我知道我可以在下面运行来恢复我的包,但这是一个很大的痛苦。 P.S.S:我搜索并看到了thisthis 。我正在寻找一种方法来防止这种情况再次发生

nuget install packages.config

最佳答案

使用 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 将它们分发到您的项目中,而不将它们发布到互联网上,这也很有用。

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

相关文章:

c# - 文件上传到 Windows Azure Blob

c# - 我想捕获所有没有特定标签的标签

c# - 搜索字符串以查找文件名

git - 如何将文件与 git 提交相匹配?

git - SourceTree 中没有分支?

c# - 如何从 Xamarin.Forms 中的可移植类库项目调用位于 Android 项目内部的方法?

c# - 可访问性不一致 : property type

c# - 索引超出范围错误;这里而不是那里?

git - 如何关闭 git 自动更正?

c# - 尝试使用 PowerShell 列出 Azure 文件服务中的共享时身份验证失败