dotnet restoredotnet restore
本文内容
本文适用于:✓ .NET Core 1.x SDK ✓ .NET Core 2.x SDK
nameName
dotnet restore
- 恢复项目的依赖项和工具。
摘要Synopsis
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 [<ROOT>] [--configfile] [--disable-parallel] [--ignore-failed-sources] [--no-cache]
[--no-dependencies] [--packages] [-r|--runtime] [-s|--source] [-v|--verbosity]
dotnet restore [-h|--help]
说明Description
dotnet restore
命令使用 NuGet 还原依赖项以及在 project 文件中指定的特定于项目的工具。默认情况下会并行执行对依赖项和工具的还原。
备注
从 .NET Core 2.0 SDK 开始,无需运行 dotnet restore
,因为它由所有需要还原的命令隐式运行,如 dotnet new
、dotnet build
和 dotnet 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 new
dotnet build
dotnet build-server
dotnet run
dotnet test
dotnet publish
dotnet pack
在大多数情况下,不再需要显式使用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