visual-studio - 是否应该将 .nuget 文件夹添加到版本控制中?

标签 visual-studio version-control nuget

使用较新版本的 NuGet,可以将项目配置为自动恢复 NuGet 包,这样 packages 文件夹就不需要包含在源代码存储库中。很好。

但是,此命令会添加一个新的 .nuget 文件夹,并且其中有一个二进制文件 NuGet.exe。这也可以由 Visual Studio 自动重新创建,因此将其添加到版本控制中感觉不正确。但是,如果没有此文件夹,Visual Studio 甚至无法正确加载解决方案。

你们如何处理这个问题?将 .nuget 添加到源代码管理?在打开解决方案之前运行一些命令行脚本?

最佳答案

这篇文章已经过时了,您不应该再使用解决方案级别的 NuGet 包恢复。从版本 2.7+ 开始,NuGet 设置中有一个选项可以在构建时自动恢复包。 因此,可以删除 .nuget 文件夹并从项目中删除该选项。

http://docs.nuget.org/docs/reference/package-restore

更新:随着 NuGet 4.x 和 .NET Standard 2.0 的发布,当您使用新的 csproj 格式时,您现在可以使用包引用,具有讽刺意味的是,重新引入了对 msbuild 的依赖来恢复包,但现在包是 msbuild 的一等公民。上面的链接还提到了 PackageReference,但以下公告更详细地介绍了它:

https://blog.nuget.org/20170316/NuGet-now-fully-integrated-into-MSBuild.html

还有 NuGet 4.x RTM 公告,讽刺的是它并没有那么有用:

https://blog.nuget.org/20170308/Announcing-NuGet-4.0-RTM.html

更新2:显然,在VS2017中,您甚至可以在经典的csproj项目中使用包引用,但它们不再向后兼容,并且在恢复包子依赖关系方面存在一些问题。我相信这一切都会得到解决。

关于visual-studio - 是否应该将 .nuget 文件夹添加到版本控制中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9146094/

相关文章:

css - LESS - 从 URL 导入另一个文件

version-control - 将带有尾随空格的行提交到源代码管理中为什么会很糟糕?

nhibernate - 加载 NHibernate 依赖的 dll 之一时出错

C++20 概念测试在 MSVS 16.5 中不起作用

visual-studio - 在 Visual Studio 2008 中重置 View ?

windows - 在 Windows 中编程的编码配色方案,而不仅仅是 Visual Studio

drupal - LAMP Drupal 站点的哪些配置文件应保存在源代码管理中?

linux - 在 RedHat 3 上安装最新的 git

nuget - 是否有可与 ASP.Net 5 一起使用的 Lightspeed 5.x NuGet 包?

asp.net - 安装 Asp.Net SignalR 安装时出错