comando restore (CLI de NuGet)

Se aplica a: consumo de paquetes • Versiones compatibles: 2.7 y posteriores

Descarga e instala los paquetes que faltan de la carpeta packages. Cuando se usa con NuGet 4.0+ y el formato PackageReference, genera un archivo <project>.nuget.props, si es necesario, en la carpeta obj. (El archivo puede omitirse del control de código fuente.)

En Mac OSX y Linux con la CLI en Mono, no se admite la restauración de paquetes con PackageReference.

Uso

nuget restore <projectPath> [options]

donde <projectPath> especifica la ubicación de una solución o un archivo packages.config. Consulte los Comentarios siguientes para obtener más información sobre el comportamiento.

Opciones

  • -ConfigFile

    El archivo de configuración de NuGet que aplicar. Si no se especifica, se usa %AppData%\NuGet\NuGet.Config (Windows) o ~/.nuget/NuGet/NuGet.Config o ~/.config/NuGet/NuGet.Config (Mac/Linux).

  • -DirectDownload

    (4.0+) Descarga paquetes directamente sin rellenar cachés con archivos binarios o metadatos.

  • -DisableParallelProcessing

    Deshabilita la restauración de varios paquetes en paralelo.

  • -FallbackSource

    (3.2+) Una lista de orígenes de paquetes que se van a usar como reserva en caso de que el paquete no se encuentre en el origen principal o predeterminado. Use un punto y coma para separar las entradas de lista.

  • -Force

    En los proyectos basados en PackageReference, fuerza la resolución de todas las dependencias, incluso si la última restauración se realizó correctamente. Especificar esta marca es similar a eliminar el archivo project.assets.json. Esto no omite la caché http.

  • -ForceEnglishOutput

    (3.5 y posteriores) Fuerza la ejecución de nuget.exe mediante una referencia cultural en inglés invariable.

  • -ForceEvaluate

    Fuerza la restauración para volver a evaluar todas las dependencias aunque ya exista un archivo de bloqueo.

  • -?|-help

    Muestra información de ayuda para el comando.

  • -LockFilePath

    Ubicación de salida donde se escribe el archivo de bloqueo del proyecto. De manera predeterminada, será PROJECT_ROOT\packages.lock.json.

  • -LockedMode

    No permite actualizar el archivo de bloqueo del proyecto.

  • -MSBuildPath

    (4.0 y posteriores) Especifica la ruta de acceso de MSBuild que se va a usar con el comando; prevalecerá sobre -MSBuildVersion.

  • -MSBuildVersion

    (3.2 y posteriores) Especifica la versión de MSBuild que se va a usar con este comando. Los valores admitidos son 4, 12, 14, 15.1, 15.3, 15.4, 15.5, 15.6, 15.7, 15.8, 15.9. De manera predeterminada, se selecciona MSBuild en la ruta de acceso; de lo contrario, el valor predeterminado es la versión instalada más alta de MSBuild.

  • -NoHttpCache

    Impide que NuGet use paquetes almacenados en caché http. Consulte Administración de paquetes globales y carpetas de caché.

  • -NonInteractive

    Suprime solicitudes de confirmaciones o de entrada de usuario.

  • -OutputDirectory

    Especifica la carpeta en la que se instalan los paquetes. Si no se especifica, se usa la carpeta actual. Necesario al restaurar con un archivo packages.config a menos que se use PackagesDirectory o SolutionDirectory.

  • -PackageSaveMode

    Especifica los tipos de archivos que se van a guardar después de la instalación del paquete: uno entre nuspec, nupkg o nuspec;nupkg.

  • -PackagesDirectory

    Igual que OutputDirectory. Necesario al restaurar con un archivo packages.config a menos que se use OutputDirectory o SolutionDirectory.

  • -Project2ProjectTimeOut

    Tiempo de espera en segundos para resolver referencias de proyecto a proyecto.

  • -Recursive

    (4.0+) Restaura todos los proyectos de referencia para proyectos de UWP y .NET Core. No se aplica a los proyectos que usen packages.config.

  • -RequireConsent

    Compruebe que la restauración de paquetes está habilitada antes de descargar e instalar los paquetes. Para obtener más información, consulte Restauración de paquetes.

  • -SolutionDirectory

    Especifica la carpeta de la solución. No es válido al restaurar paquetes para una solución. Necesario al restaurar con un archivo packages.config a menos que se use PackagesDirectory o OutputDirectory.

  • -Source

    Especifica la lista de orígenes de paquete (como direcciones URL) que se van a usar para la restauración. Si se omite, el comando usa los orígenes proporcionados en los archivos de configuración; consulte Configuración del comportamiento de NuGet. Use un punto y coma para separar las entradas de lista.

  • -UseLockFile

    Habilita la generación del archivo de bloqueo del proyecto y su uso con la restauración.

  • -Verbosity [normal|quiet|detailed]

    Especifica la cantidad de detalles que se muestran en la salida: normal (el valor predeterminado), quiet o detailed.

Consulta también Variables de entorno

Comentarios

El comando restore realiza los pasos siguientes:

  1. Determine el modo de operación del comando restore.

    tipo de archivo projectPath Comportamiento
    Solución (carpeta) NuGet busca un archivo .sln y lo usa si se encuentra; de lo contrario, genera un error. (SolutionDir)\.nuget se usa como carpeta de inicio.
    Archivo .sln Restaurar paquetes identificados por la solución; genera un error si se usa -SolutionDirectory. $(SolutionDir)\.nuget se usa como carpeta de inicio.
    packages.config o archivo de proyecto Restaure los paquetes enumerados en el archivo, resolviendo e instalando dependencias.
    Otro tipo de archivo Se supone que el archivo es un archivo .sln como se indicó anteriormente; si no es una solución, NuGet genera un error.
    (projectPath no especificado)
    • NuGet busca archivos de solución en la carpeta actual. Si se encuentra un único archivo, se usa para restaurar paquetes; si se encuentran varias soluciones, NuGet genera un error.
    • Si no hay ningún archivo de solución, NuGet busca packages.config y lo usa para restaurar paquetes.
    • Si no se encuentra ninguna solución ni el archivo packages.config, NuGet genera un error.
  2. Determine la carpeta de paquetes con el siguiente orden de prioridad (NuGet genera un error si no se encuentra ninguna de estas carpetas):

    • Carpeta especificada con -PackagesDirectory.
    • El valor repositoryPath en Nuget.Config.
    • Carpeta especificada con -SolutionDirectory
    • $(SolutionDir)\packages
  3. Al restaurar paquetes para una solución, NuGet hace lo siguiente:

    • Carga el archivo de solución.
    • Restaura los paquetes de nivel de solución que aparecen en $(SolutionDir)\.nuget\packages.config en la carpeta packages.
    • Restaura los paquetes que aparecen en $(ProjectDir)\packages.config en la carpeta packages. Para cada paquete especificado, restaura el paquete en paralelo a menos que se especifique -DisableParallelProcessing.

Ejemplos

# 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"