要排除的Nuget和源控制文件?

时间:2012-08-31 15:36:46

标签: asp.net nuget nuget-package

我知道我应该更多地使用nuget但是在这一点上我并不完全理解细微差别所以我仍然倾向于获得源代码并构建项目,然后引用项目,或者我创建自己的“dlls”文件夹并手动复制dll。

作为我学习过程的一部分,我试图了解使用nuget时哪些是关键的,哪些不是。例如,我已经完成了install-package restsharp,现在当我检查源代码控制时,我得到了像“packages / RestSharp.103.4 / lib / net4 / RestSharp.xml”这样的文件。我假设nuget将帮助我升级等等,它需要有一些元数据类型文件。

我的问题是:我应该忽略“packages”目录中的任何或所有文件吗?如果是,那又是什么。

由于

2 个答案:

答案 0 :(得分:6)

有两种工作流程可以处理这种情况。最初的工作流程是提交packages目录中的所有文件(您不需要忽略任何文件),以便团队中的其他开发人员拥有构建项目的包。

自NuGet 1.6以来可用的新工作流程是为解决方案启用NuGet的包恢复功能。这将导致在构建项目时自动下载任何缺少的包文件,但现在您不再需要将大型二进制文件提交到版本控制。从NuGet 2.0开始,现在required让团队中的每个开发人员在Visual Studio选项中启用NuGet的包恢复权限。

答案 1 :(得分:2)

在Visual Studio中,在Project下,有一个名为Enable NuGet Package Restore的菜单项。当您打开项目并且使用 Web应用程序项目时(恢复不适用于网站项目),这可用。选择该选项并启用包还原。然后,您不需要将Packages目录提交到任何地方的源代码控制。

NuGet的文档提供了有关package restore的更多信息。

如果您想手动模仿包恢复,则需要解析packages.config文件,然后执行NuGet Commandline Bootstrappernuget.exe)来安装这些包。幸运的是,bootstrapper将packages.config作为参数。使用以下步骤应该恢复您的包:

  1. 从解决方案所在的目录创建packages文件夹。
  2. 从packages目录中,从命令行运行以下命令:

    nuget.exe install [packages.config的路径]

  3. 这可以在批处理文件中完成,也可以自动完成。