2

我了解在构建项目之前,nuget 的包恢复下载并“安装”各种所需的包。但我无法弄清楚这实际上有什么作用。

据我所知,包还原期间包的“安装”与包的实际安装不同 - 例如,如果您执行以下操作:

  1. 安装 jQuery 包(注意,这会将 jQuery 脚本文件添加到项目的“脚本”目录中)
  2. 删除添加的 jQuery 脚本文件
  3. 删除“包”目录(步骤 2 和 3 模拟构建机器或其他开发机器上的状态)
  4. 进行构建(触发包还原)

此时构建状态

2>  Successfully installed 'jQuery 1.9.1'.

但是,jQuery 包的脚本文件不会添加到“脚本”文件夹中,并且文件不会添加到项目中。

这意味着无论如何您都必须将这些文件签入源代码管理。

这也意味着当您更新此软件包时,您必须管理添加/删除新/旧文件(因为使用不同的版本文件名)。否则,您的“脚本”文件夹将充满版本化脚本文件的无尽历史。

因此,如果您无论如何必须检查所有内容,并且必须在更新时手动管理添加和删除文件,那么在构建时恢复包到底有什么好处?这有什么用?

更重要的是,为什么这不能达到明显的目的:自动将包的文件添加到项目中?

4

1 回答 1

0

在不将包提交到源代码管理的情况下使用 NuGet讨论了包还原背后的原因。

包还原意味着您不必将文件夹签入源代码管理。一旦为您的项目启用,它将下载包并在构建时将它们放回包文件夹(如果它们丢失)。正如您所发现的,它不会将任何包文件添加到您的项目中。对于 jQuery,NuGet 包中的所有文件都将添加到您的项目中。然而,其他 NuGet 包包含一个或多个二进制文件。

于 2013-02-07T09:20:54.167 回答