dotnet restoredotnet restore

本文内容

本文适用于:✓ .NET Core 1.x SDK ✓ .NET Core 2.x SDK

nameName

dotnet restore - 恢复项目的依赖项和工具。

摘要Synopsis

  1. dotnet restore [<ROOT>] [--configfile] [--disable-parallel] [--force] [--ignore-failed-sources] [--no-cache]
  2. [--no-dependencies] [--packages] [-r|--runtime] [-s|--source] [-v|--verbosity] [--interactive]
  3. dotnet restore [-h|--help]
  1. dotnet restore [<ROOT>] [--configfile] [--disable-parallel] [--ignore-failed-sources] [--no-cache]
  2. [--no-dependencies] [--packages] [-r|--runtime] [-s|--source] [-v|--verbosity]
  3. dotnet restore [-h|--help]

说明Description

dotnet restore 命令使用 NuGet 还原依赖项以及在 project 文件中指定的特定于项目的工具。默认情况下会并行执行对依赖项和工具的还原。

备注

从 .NET Core 2.0 SDK 开始,无需运行 dotnet restore,因为它由所有需要还原的命令隐式运行,如 dotnet newdotnet builddotnet run在执行显式还原有意义的某些情况下,例如 Azure DevOps Services 中的持续集成生成中,或在需要显式控制还原发生时间的生成系统中,它仍然是有效的命令。

为了还原依赖项,NuGet 需要包所在的源。通常通过“nuGet.config”配置文件提供源 。安装 CLI 工具时提供一个默认的配置文件。可以通过在项目目录中创建自己的 nuGet.config 文件来指定其他源 。也可以在命令提示符处指定每次调用的其他源。

对于依赖项,使用 —packages 参数指定还原操作期间放置还原包的位置。如未指定,将使用默认的 NuGet 包缓存,可在所有操作系统上的用户主目录中的 .nuget/packages 目录找到它。例如 Linux 上的 /home/user1 或 Windows 上的 C:\Users\user1 。

对于特定于项目的工具,dotnet restore 首先还原打包工具所在的包,然后继续还原 project 文件中指定的工具依赖项。

nuget.config 差异nuget.config differences

dotnet restore 命令的行为会受 Nuget.Config 文件(如果有)中某些设置的影响 。例如,在 NuGet.Config 中设置 globalPackagesFolder 会将还原的 NuGet 包置于指定的文件夹中 。这是在 dotnet restore 命令中指定 —packages 选项的替代方法。有关详细信息,请参阅 nuget.config 参考

有三个 dotnet restore 可忽略的特定设置:

绑定重定向不适用于 <PackageReference> 元素,并且 .NET Core 仅支持 NuGet 包的 <PackageReference> 元素。

此设置特定于 Visual Studio,不适用于 .NET Core。.Net Core 不使用 packages.config 文件,而是使用 NuGet 包的 <PackageReference> 元素。

此设置不适用,如 NuGet 尚不支持跨平台验证受信任包所述。

隐式 dotnet restoreImplicit dotnet restore

从 .Net Core 2.0 开始,当发出下列命令时,如有必要,将隐式运行 dotnet restore

有时,隐式运行 dotnet restore 可能不方便。例如,某些自动化系统(如生成系统)需要显式调用 dotnet restore,以控制还原发生的时间,以便可以控制网络使用量。要防止隐式运行 dotnet restore,可以通过上述任意命令使用 —no-restore 标记以禁用隐式还原。

自变量Arguments

ROOT

要还原的项目文件的可选路径。

选项Options

—configfile <FILE>

供还原操作使用的 NuGet 配置文件 (nuget.config) 。

—disable-parallel

禁用并行还原多个项目。

—force

强制解析所有依赖项,即使上次还原已成功,也不例外。指定此标记等同于删除 project.assets.json 文件 。

-h|—help

打印出有关命令的简短帮助。

—ignore-failed-sources

如果存在符合版本要求的包,则源失败时警告。

—no-cache

指定不缓存包和 HTTP 请求。

—no-dependencies

当使用项目到项目 (P2P) 引用还原项目时,还原根项目,不还原引用。

—packages <PACKAGES_DIRECTORY>

指定还原包的目录。

-r|—runtime <RUNTIME_IDENTIFIER>

指定程序包还原的运行时。这用于还原 .csproj 文件中的 <RuntimeIdentifiers> 标记中未显式列出的运行时的程序包。有关运行时标识符 (RID) 的列表,请参阅 RID 目录通过多次指定此选项提供多个 RID。

-s|—source <SOURCE>

指定要在还原操作期间使用的 NuGet 包源。此设置会替代 nuget.config 文件中指定的所有源 。多次指定此选项可以提供多个源。

—verbosity <LEVEL>

设置命令的详细级别。允许使用的值为 q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]

—interactive

允许命令停止并等待用户输入或操作(例如,完成身份验证)。从 .NET Core 2.1.400 开始。

—configfile <FILE>

供还原操作使用的 NuGet 配置文件 (nuget.config) 。

—disable-parallel

禁用并行还原多个项目。

-h|—help

打印出有关命令的简短帮助。

—ignore-failed-sources

如果存在符合版本要求的包,则源失败时警告。

—no-cache

指定不缓存包和 HTTP 请求。

—no-dependencies

当使用项目到项目 (P2P) 引用还原项目时,还原根项目,不还原引用。

—packages <PACKAGES_DIRECTORY>

指定还原包的目录。

-r|—runtime <RUNTIME_IDENTIFIER>

指定程序包还原的运行时。这用于还原 .csproj 文件中的 <RuntimeIdentifiers> 标记中未显式列出的运行时的程序包。有关运行时标识符 (RID) 的列表,请参阅 RID 目录通过多次指定此选项提供多个 RID。

-s|—source <SOURCE>

指定要在还原操作期间使用的 NuGet 包源。这会替代 nuget.config 文件中指定的所有源并有效读取 nuget.config 文件,就好像 <packageSource> 元素不在此处一样 。多次指定此选项可以提供多个源。

—verbosity <LEVEL>

设置命令的详细级别。允许使用的值为 q[uiet]m[inimal]n[ormal]d[etailed]diag[nostic]

示例Examples

还原当前目录中项目的依赖项和工具:

dotnet restore

还原在给定路径中找到的 app1 项目的依赖项和工具:

dotnet restore ~/projects/app1/app1.csproj

通过将提供的文件路径用作源,在当前目录中还原项目的依赖项和工具:

dotnet restore -s c:\packages\mypackages

通过将提供的两个文件路径用作源,在当前目录中还原项目的依赖项和工具:

dotnet restore -s c:\packages\mypackages -s c:\packages\myotherpackages

还原当前目录中项目的依赖项和工具,并仅显示最少的输出:

dotnet restore —verbosity minimal