使用较新版本的 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/