Show / Hide Table of Contents

dotnet restore

本文适用于: ✔️ .NET Core 2.1 SDK 及更高版本

“属性”

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

摘要

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

dotnet restore [-h|--help]

描述

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

为了还原依赖项,NuGet 需要包所在的源。 通常通过“nuGet.config”配置文件提供源 。 安装 .NET Core SDK 时提供一个默认的配置文件。 可以通过在项目目录中创建自己的 nuGet.config 文件来指定其他源 。 可以使用 - -s 选项替代 nuget.config 源 。

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

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

nuget.config 差异

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

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

  • bindingRedirects

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

  • 解决方案

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

  • trustedSigners

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

隐式还原

在运行下列命令时,如有必要,会隐式运行 dotnet restore 命令:

  • dotnet new
  • dotnet build
  • dotnet build-server
  • dotnet run
  • dotnet test
  • dotnet publish
  • dotnet pack

在大多数情况下无需显式使用 dotnet restore 命令。

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

自变量

  • ROOT

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

选项

  • --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]。 默认值是 minimal。

  • --interactive

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

示例

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

    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 detailed
    
Back to top Generated by DocFX