适用于:包使用 • 支持的版本:2.7 及以上版本
下载并安装 packages 文件夹中缺少的任何包。 与 NuGet 4.0+ 一起使用时,PackageReference 格式会在 obj 文件夹中生成一个 <project>.nuget.props 文件。 (该文件在源代码管理中都可以忽略。)
在 Mac OSX 和 Linux 上使用 Mono 上的 CLI 时,PackageReference 不支持还原包。
使用情况
nuget restore <projectPath> [options]
其中 <projectPath> 指定解决方案或 packages.config 文件的位置。 有关行为详细信息,请参阅下面的备注。
选项
-ConfigFile要应用的 NuGet 配置文件。 如果未指定,则使用
%AppData%\NuGet\NuGet.Config(适用于 Windows)或是~/.nuget/NuGet/NuGet.Config或~/.config/NuGet/NuGet.Config(适用于 Mac/Linux)。-DirectDownload(4.0+) 直接下载包,而不使用任何元数据或二进制填充任何缓存。
-DisableParallelProcessing禁用还原并行的多个包。
-FallbackSource(3.2+) 在主源或默认源中未找到包源时用作回退的包源的列表。 使用分号分隔列表条目。
-Force在基于 PackageReference 的项目中,强制解析所有依赖项,即使上次还原已成功。 指定此标志类似于删除
project.assets.json文件。 这不会绕过 http-cache。-ForceEnglishOutput(3.5+) 使用固定的、基于英语的区域性强制 nuget.exe 运行。
-ForceEvaluate即使锁定文件已存在,也会强制还原以重新评估所有依赖项。
-?|-help显示此命令的帮助信息。
-LockFilePath写入项目锁定文件的输出位置。 默认情况下,该属性为
PROJECT_ROOT\packages.lock.json。-LockedMode不允许更新项目锁定文件。
-MSBuildPath(4.0+) 指定要与该命令一起使用的 MSBuild 的路径,从而优先于
-MSBuildVersion。-MSBuildVersion(3.2+) 指定要此命令一起使用的 MSBuild 的版本。 支持的值为 4、12、14、15.1、15.3、15.4、15.5、15.6、15.7、15.8、15.9。 默认情况下,会选择路径中的 MSBuild,否则它默认为已安装的最高 MSBuild 版本。
-NoHttpCache阻止 NuGet 使用 http 已缓存的包。 请参阅管理全局包和缓存文件夹。
-NonInteractive不为用户输入或确认显示提示。
-OutputDirectory指定要在其中安装包的文件夹。 如果未指定文件夹,则使用当前文件夹。 在使用文件还原
packages.config时是必需的,除非使用的是PackagesDirectory或SolutionDirectory。-PackageSaveMode指定要在包安装后保存的文件的类型:
nuspec、nupkg或nuspec;nupkg。-PackagesDirectory与
OutputDirectory相同。 在使用文件还原packages.config时是必需的,除非使用的是OutputDirectory或SolutionDirectory。-Project2ProjectTimeOut解析项目到项目引用的超时(以秒为单位)。
-Recursive(4.0+) 还原 UWP 和 .NET Core 项目的所有引用项目。 不适用于使用
packages.config项目。-RequireConsent在下载和安装包之前,验证是否已启用还原包。 有关详细信息,请参阅包还原。
-SolutionDirectory指定解决方案文件夹。 还原解决方案的包时无效。 在使用文件还原
packages.config时是必需的,除非使用的是PackagesDirectory或OutputDirectory。-Source指定要用于这些还原的包源(作为 URL)的列表。 如果省略,该命令将使用配置文件中提供的源,请参阅配置 NuGet 行为。 使用分号分隔列表条目。
-UseLockFile允许生成项目锁定文件并与还原一起使用。
-Verbosity [normal|quiet|detailed]指定输出中显示的细节量:
normal(默认值)、quiet或detailed。
另请参阅环境变量
注解
该还原命令执行以下步骤:
确定还原命令的操作模式。
projectPath 文件类型 行为 解决方案(文件夹) NuGet 查找 .sln文件并使用该文件(如果找到);否则会提供错误。(SolutionDir)\.nuget用作起始文件夹。.sln文件还原解决方案标识的包;如果使用 -SolutionDirectory,则提供错误。$(SolutionDir)\.nuget用作起始文件夹。packages.config或项目文件还原文件中列出的包,解析和安装依赖项。 其他文件类型 假定文件是 .sln上述文件;如果不是解决方案,NuGet 会出错。(未指定 projectPath) - NuGet 在当前文件夹中查找解决方案文件。 如果找到单个文件,则使用该文件还原包;如果找到多个解决方案,则 NuGet 会提供错误。
- 如果没有解决方案文件,NuGet 会查找
packages.config并使用该文件还原包。 - 如果未找到解决方案或
packages.config文件,则 NuGet 会提供错误。
使用以下优先级顺序确定包文件夹(如果未找到这些文件夹,则 NuGet 会出错):
- 使用
-PackagesDirectory指定的文件夹。 Nuget.Config中的repositoryPath值- 使用
-SolutionDirectory指定的文件夹 $(SolutionDir)\packages
- 使用
还原解决方案的包时,NuGet 执行以下操作:
- 加载解决方案文件。
- 将
$(SolutionDir)\.nuget\packages.config中列出的解决方案级别包还原到packages文件夹中。 - 将
$(ProjectDir)\packages.config中列出的包还原到packages文件夹中。 对于指定的每个包,还并行的包,除非指定的是-DisableParallelProcessing。
示例
# Restore packages for a solution file
nuget restore a.sln
# Restore packages for a solution file, using MSBuild version 14.0 to load the solution and its project(s)
nuget restore a.sln -MSBuildVersion 14
# Restore packages for a project's packages.config file, with the packages folder at the parent
nuget restore proj1\packages.config -PackagesDirectory ..\packages
# Restore packages for the solution in the current folder, specifying package sources
nuget restore -source "https://api.nuget.org/v3/index.json;https://www.myget.org/F/nuget"