“包裹还原”的目的是什么?

时间:2013-02-06 22:54:52

标签: nuget

我知道nuget的软件包还原会在构建项目之前下载并“安装”各种所需的软件包。但我无法弄清楚这实际上是为了什么目的。

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

  1. 安装jQuery包(请注意,这会将jQuery脚本文件添加到项目的'Scripts'目录中)
  2. 删除添加的jQuery脚本文件
  3. 删除'packages'目录(步骤2和3模拟构建机器或其他开发者机器上的状态)
  4. 进行构建(触发包恢复)
  5. 此时构建状态

    2>  Successfully installed 'jQuery 1.9.1'.
    

    但是,jQuery包的脚本文件是 NOT 添加到'Scripts'文件夹中,文件是 NOT 添加到项目中。

    这意味着你必须将这些文件检查到源代码管理中。

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

    所以,如果你来检查所有内容,并且你手动管理更新时添加和删除文件,恢复包的确切好处是什么在构建?这是为了什么目的?

    更重要的是,为什么这有明显的用途:自动将软件包的文件添加到项目中?

1 个答案:

答案 0 :(得分:0)

Using NuGet Without Committing Packages to Source Control讨论了包恢复的原因。

包恢复意味着您无需将文件夹检查到源代码管理中。一旦为您的项目启用,它将下载软件包并在构建时将它们放回到packages文件夹中(如果它们丢失)。正如您所发现的那样,它不会将任何包文件添加到您的项目中。在jQuery的情况下,NuGet包中的所有文件都会添加到您的项目中。然而,其他NuGet包包括一个或多个二进制文件。