dotnet restoredotnet restore

Questo articolo si applica a: ✔️ .NET Core 2.1 SDK e versioni successiveThis article applies to: ✔️ .NET Core 2.1 SDK and later versions

NomeName

dotnet restore: ripristina le dipendenze e gli strumenti di un progetto.dotnet restore - Restores the dependencies and tools of a project.

RiepilogoSynopsis

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]

DescrizioneDescription

Il comando dotnet restore usa NuGet per ripristinare le dipendenze e gli strumenti specifici del progetto definiti nel file di progetto.The dotnet restore command uses NuGet to restore dependencies as well as project-specific tools that are specified in the project file. Per impostazione predefinita, il ripristino delle dipendenze e degli strumenti viene eseguito in parallelo.By default, the restoration of dependencies and tools are executed in parallel.

Per ripristinare le dipendenze, NuGet necessita dei feed in cui si trovano i pacchetti.To restore the dependencies, NuGet needs the feeds where the packages are located. I feed vengono forniti in genere tramite il file di configurazione nuget.config.Feeds are usually provided via the nuget.config configuration file. Quando è installato .NET Core SDK, viene fornito un file di configurazione predefinito.A default configuration file is provided when the .NET Core SDK is installed. È possibile specificare più feed creando un file nuget.config nella directory del progetto.You specify additional feeds by creating your own nuget.config file in the project directory. È possibile eseguire l'override dei feed -s nuget.config con l'opzione -.You can override the nuget.config feeds with the - -s option.

Per le dipendenze è possibile specificare dove vengono inseriti i pacchetti ripristinati durante l'operazione di ripristino usando l'argomento --packages.For dependencies, you specify where the restored packages are placed during the restore operation using the --packages argument. Se questa destinazione non viene specificata, viene usata la cache predefinita dei pacchetti NuGet che si trova nella directory .nuget/packages della directory home dell'utente in tutti i sistemi operativi.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. Ad esempio, /home/user1 in Linux o C:\Utenti\user1 in Windows.For example, /home/user1 on Linux or C:\Users\user1 on Windows.

Per gli strumenti specifici del progetto, dotnet restore ripristina innanzitutto il pacchetto in cui viene compresso lo strumento e quindi ripristina le dipendenze dello strumento come specificato nel file di progetto.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.

Differenze di nuget.confignuget.config differences

Il funzionamento del comando dotnet restore può essere modificato dalle impostazioni del file nuget.config, se è presente.The behavior of the dotnet restore command is affected by the settings in the nuget.config file, if present. Se ad esempio si imposta globalPackagesFolder in nuget.config, i pacchetti NuGet ripristinati vengono posizionati nella cartella specificata.For example, setting the globalPackagesFolder in nuget.config places the restored NuGet packages in the specified folder. Questo approccio rappresenta un'alternativa all'impostazione dell'opzione --packages per il comando dotnet restore.This is an alternative to specifying the --packages option on the dotnet restore command. Per altre informazioni, vedere Informazioni di riferimento su nuget.config.For more information, see the nuget.config reference.

Esistono tre impostazioni specifiche che dotnet restore ignora:There are three specific settings that dotnet restore ignores:

  • bindingRedirectsbindingRedirects

    I reindirizzamenti di binding non funzionano con elementi <PackageReference> e .NET Core supporta solo elementi <PackageReference> per i pacchetti NuGet.Binding redirects don't work with <PackageReference> elements and .NET Core only supports <PackageReference> elements for NuGet packages.

  • Soluzionesolution

    Questa impostazione è specifica di Visual Studio e non può essere applicata a .NET Core.This setting is Visual Studio specific and doesn't apply to .NET Core. .NET Core non usa un file packages.config ma usa invece elementi <PackageReference> per i pacchetti NuGet..NET Core doesn't use a packages.config file and instead uses <PackageReference> elements for NuGet packages.

  • trustedSignerstrustedSigners

    Questa impostazione non può essere applicata perché NuGet non supporta ancora la verifica multipiattaforma di pacchetti attendibili.This setting isn't applicable as NuGet doesn't yet support cross-platform verification of trusted packages.

Ripristino implicitoImplicit restore

Il dotnet restore comando viene eseguito in modo implicito se necessario quando si eseguono i seguenti comandi:The dotnet restore command is run implicitly if necessary when you run the following commands:

Nella maggior parte dei casi, non dotnet restore è necessario utilizzare in modo esplicito il comando.In most cases, you don't need to explicitly use the dotnet restore command.

In alcuni casi, potrebbe non essere appropriato eseguire dotnet restore in modo implicito.Sometimes, it might be inconvenient to run dotnet restore implicitly. È ad esempio necessario che alcuni sistemi automatizzati, come i sistemi di compilazione, chiamino dotnet restore in modo esplicito per controllare quando si verifica il ripristino in modo che possano controllare l'utilizzo della rete.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. Per impedire l'esecuzione implicita di dotnet restore, è possibile usare il flag --no-restore con uno di questi comandi per disabilitare il ripristino implicito.To prevent dotnet restore from running implicitly, you can use the --no-restore flag with any of these commands to disable implicit restore.

ArgomentiArguments

  • ROOT

    Percorso facoltativo del file di progetto da ripristinare.Optional path to the project file to restore.

OpzioniOptions

  • --configfile <FILE>

    File di configurazione NuGet (nuget.config) da usare per l'operazione di ripristino.The NuGet configuration file (nuget.config) to use for the restore operation.

  • --disable-parallel

    Disabilita il ripristino di più progetti in parallelo.Disables restoring multiple projects in parallel.

  • --force

    Forza la risoluzione di tutte le dipendenze, anche se l'ultimo ripristino ha avuto esito positivo.Forces all dependencies to be resolved even if the last restore was successful. La specifica di questo flag equivale all'eliminazione del file project.assets.json.Specifying this flag is the same as deleting the project.assets.json file.

  • -h|--help

    Stampa una breve guida per il comando.Prints out a short help for the command.

  • --ignore-failed-sources

    Segnala le origini con esito negativo solo se sono presenti pacchetti che soddisfano il requisito di versione.Only warn about failed sources if there are packages meeting the version requirement.

  • --no-cache

    Specifica di non memorizzare nella cache pacchetti e richieste HTTP.Specifies to not cache packages and HTTP requests.

  • --no-dependencies

    Durante il ripristino di un progetto con riferimenti da progetto a progetto, ripristina il progetto radice e non i riferimenti.When restoring a project with project-to-project (P2P) references, restores the root project and not the references.

  • --packages <PACKAGES_DIRECTORY>

    Specifica la directory per i pacchetti ripristinati.Specifies the directory for restored packages.

  • -r|--runtime <RUNTIME_IDENTIFIER>

    Specifica un runtime per il ripristino dei pacchetti.Specifies a runtime for the package restore. Questo runtime viene usato per ripristinare i pacchetti di runtime non esplicitamente elencati nel tag <RuntimeIdentifiers> del file csproj.This is used to restore packages for runtimes not explicitly listed in the <RuntimeIdentifiers> tag in the .csproj file. Per un elenco degli identificatori di runtime (RID, Runtime Identifier), vedere il catalogo RID.For a list of Runtime Identifiers (RIDs), see the RID catalog. Specificare più origini selezionando questa opzione più volte.Provide multiple RIDs by specifying this option multiple times.

  • -s|--source <SOURCE>

    Specifica un'origine dei pacchetti NuGet da usare durante l'operazione di ripristino.Specifies a NuGet package source to use during the restore operation. Questa impostazione esegue l'override di tutte le origini specificate nei file NuGet.config.This setting overrides all of the sources specified in the nuget.config files. È possibile specificare più origini, selezionando questa opzione più volte.Multiple sources can be provided by specifying this option multiple times.

  • --verbosity <LEVEL>

    Imposta il livello di dettaglio del comando.Sets the verbosity level of the command. I valori consentiti sono q[uiet], m[inimal], n[ormal], d[etailed] e diag[nostic].Allowed values are q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic]. Il valore predefinito è minimal.Default value is minimal.

  • --interactive

    Consente al comando di arrestarsi e attendere l'input o l'azione dell'utente (ad esempio, il completamento dell'autenticazione).Allows the command to stop and wait for user input or action (for example to complete authentication). A partire da .NET Core 2.1.400Since .NET Core 2.1.400.

EsempiExamples

  • Ripristinare le dipendenze e gli strumenti per il progetto nella directory corrente:Restore dependencies and tools for the project in the current directory:

    dotnet restore
    
  • Ripristinare le dipendenze app1 e gli strumenti per il progetto disponibili nel percorso specificato:Restore dependencies and tools for the project found in the given path:Restore dependencies and tools for the app1 project found in the given path:

    dotnet restore ~/projects/app1/app1.csproj
    
  • Ripristinare le dipendenze e gli strumenti per il progetto nella directory corrente utilizzando il percorso del file fornito come origine: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
    
  • Ripristinare le dipendenze e gli strumenti per il progetto nella directory corrente utilizzando i due percorsi di file forniti come origini: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
    
  • Ripristinare le dipendenze e gli strumenti per il progetto nella directory corrente che mostra l'output dettagliato:Restore dependencies and tools for the project in the current directory showing detailed output:Restore dependencies and tools for the project in the current directory showing detailed output:

    dotnet restore --verbosity detailed