Provided by: dotnet-host-7.0_7.0.105-0ubuntu2_amd64 bug

dotnet restore

       This article applies to: ✔️ .NET Core 3.1 SDK and later versions

NAME

       dotnet-restore - Restores the dependencies and tools of a project.

SYNOPSIS

              dotnet restore [<ROOT>] [--configfile <FILE>] [--disable-parallel]
                  [-f|--force] [--force-evaluate] [--ignore-failed-sources]
                  [--interactive] [--lock-file-path <LOCK_FILE_PATH>] [--locked-mode]
                  [--no-cache] [--no-dependencies] [--packages <PACKAGES_DIRECTORY>]
                  [-r|--runtime <RUNTIME_IDENTIFIER>] [-s|--source <SOURCE>]
                  [--use-lock-file] [-v|--verbosity <LEVEL>]

              dotnet restore -h|--help

DESCRIPTION

       The  dotnet restore command uses NuGet to restore dependencies as well as project-specific
       tools that are specified in the project file.  In most cases, you don’t need to explicitly
       use  the dotnet restore command, since a NuGet restore is run implicitly if necessary when
       you run the following commands:

       • dotnet newdotnet builddotnet build-serverdotnet rundotnet testdotnet publishdotnet pack

       Sometimes, it might be inconvenient to run the implicit NuGet restore with these commands.
       For  example,  some  automated systems, such as build systems, need to call dotnet restore
       explicitly to control when the restore occurs so that they can control network usage.   To
       prevent  the  implicit  NuGet restore, you can use the --no-restore flag with any of these
       commands to disable implicit restore.

              Signed package verification during restore operations requires a  certificate  root
              store  that  is  valid  for  both  code signing and timestamping.  See NuGet signed
              package verification for details.

   Specify feeds
       To restore the dependencies, NuGet needs the feeds where the packages are located.   Feeds
       are  usually  provided  via  the nuget.config configuration file.  A default configuration
       file is provided when the .NET SDK is installed.  To specify additional feeds, do  one  of
       the following:

       • Create  your  own nuget.config file in the project directory.  For more information, see
         Common NuGet configurations and nuget.config differences later in this article.

       • Use dotnet nuget commands such as dotnet nuget add source.

       You can override the nuget.config feeds with the -s option.

       For information about  how  to  use  authenticated  feeds,  see  Consuming  packages  from
       authenticated feeds.

   Global packages folder
       For  dependencies,  you  can  specify  where  the  restored packages are placed during the
       restore operation using the --packages argument.  If  not  specified,  the  default  NuGet
       package  cache is used, which is found in the .nuget/packages directory in the user’s home
       directory on all operating systems.  For example, /home/user1 on Linux or C: on Windows.

   Project-specific tooling
       For project-specific tooling, dotnet restore first restores the package in which the  tool
       is  packed,  and  then  proceeds  to  restore  the tool’s dependencies as specified in its
       project file.

   nuget.config differences
       The behavior of the dotnet restore command is affected by the settings in the nuget.config
       file,  if  present.   For example, setting the globalPackagesFolder in nuget.config places
       the restored NuGet packages in the specified folder.  This is an alternative to specifying
       the  --packages  option  on  the  dotnet  restore  command.  For more information, see the
       nuget.config reference.

       There are three specific settings that dotnet restore ignores:

       • bindingRedirects

         Binding redirects don’t work with <PackageReference> elements  and  .NET  only  supports
         <PackageReference> elements for NuGet packages.

       • solution

         This  setting  is  Visual Studio specific and doesn’t apply to .NET.  .NET doesn’t use a
         packages.config file and instead uses <PackageReference> elements for NuGet packages.

       • trustedSigners

         Support for cross-platform package signature verification was added in the .NET  5.0.100
         SDK.

   Workload manifest downloads
       When you run this command, it initiates an asynchronous background download of advertising
       manifests for workloads.  If the download is still running when this command finishes, the
       download is stopped.  For more information, see Advertising manifests.

ARGUMENTS

ROOT

         Optional path to the project file to restore.

OPTIONS

--configfile <FILE>

         The  NuGet  configuration  file  (nuget.config) to use.  If specified, only the settings
         from this file will be used.  If not specified, the  hierarchy  of  configuration  files
         from  the  current  directory  will  be  used.   For  more information, see Common NuGet
         Configurations.

       • --disable-parallel

         Disables restoring multiple projects in parallel.

       • --force

         Forces all dependencies to  be  resolved  even  if  the  last  restore  was  successful.
         Specifying this flag is the same as deleting the project.assets.json file.

       • --force-evaluate

         Forces restore to reevaluate all dependencies even if a lock file already exists.

       • -?|-h|--help

         Prints out a description of how to use the command.

       • --ignore-failed-sources

         Only warn about failed sources if there are packages meeting the version requirement.

       • --interactive

         Allows  the command to stop and wait for user input or action.  For example, to complete
         authentication.

       • --lock-file-path <LOCK_FILE_PATH>

         Output  location  where  project  lock  file  is   written.    By   default,   this   is
         PROJECT_ROOT.lock.json.

       • --locked-mode

         Don’t allow updating project lock file.

       • --no-cache

         Specifies to not cache HTTP requests.

       • --no-dependencies

         When  restoring  a  project  with project-to-project (P2P) references, restores the root
         project and not the references.

       • --packages <PACKAGES_DIRECTORY>

         Specifies the directory for restored packages.

       • -r|--runtime <RUNTIME_IDENTIFIER>

         Specifies a runtime for the package restore.  This  is  used  to  restore  packages  for
         runtimes not explicitly listed in the <RuntimeIdentifiers> tag in the .csproj file.  For
         a list of Runtime Identifiers (RIDs), see the RID catalog.

       • -s|--source <SOURCE>

         Specifies the URI of the NuGet package source to use during the restore operation.  This
         setting  overrides  all  of  the  sources specified in the nuget.config files.  Multiple
         sources can be provided by specifying this option multiple times.

       • --use-lock-file

         Enables project lock file to be generated and used with restore.

       • -v|--verbosity <LEVEL>

         Sets the verbosity level  of  the  command.   Allowed  values  are  q[uiet],  m[inimal],
         n[ormal],  d[etailed], and diag[nostic].  The default is minimal.  For more information,
         see <xref:Microsoft.Build.Framework.LoggerVerbosity>.

EXAMPLES

       • Restore dependencies and tools for the project in the current directory:

                dotnet restore

       • Restore dependencies and tools for the app1 project found in the given path:

                dotnet restore ./projects/app1/app1.csproj

       • Restore the dependencies and tools for the project in the current  directory  using  the
         file path provided as the source:

                dotnet restore -s c:\packages\mypackages

       • Restore  the  dependencies  and tools for the project in the current directory using the
         two file paths provided as sources:

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

       • Restore dependencies and tools for the project in the current directory showing detailed
         output:

                dotnet restore --verbosity detailed

                                            2022-11-08                          dotnet-restore(1)