还原命令 (NuGet CLI)
适用于:包使用 • 支持的版本: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"