Condividi tramite


aggiunta di un pacchetto dotnet

Questo articolo si applica a: ✔️ .NET Core 3.1 SDK e versioni successive

Nome

dotnet package add - Aggiunge o aggiorna un riferimento al pacchetto in un file di progetto.

Nota

Se si usa .NET 9 SDK o versioni precedenti, usare invece il modulo "verbo first" () .If you're using .NET 9 SDK or earlier, use the "verb first" form () invecedotnet add package. Il formato "sostantivo primo" è stato introdotto in .NET 10. Per altre informazioni, vedere Ordine dei comandi più coerente.

Sinossi

dotnet package add <PACKAGE_NAME>
    [-f|--framework <FRAMEWORK>] [--interactive] [--project <PROJECT>]
    [-n|--no-restore] [--package-directory <PACKAGE_DIRECTORY>]
    [--prerelease] [-s|--source <SOURCE>] [-v|--version <VERSION>]

dotnet package add -h|--help

Descrizione

Il dotnet package add comando offre un'opzione pratica per aggiungere o aggiornare un riferimento al pacchetto in un file di progetto. Quando si esegue il comando, è disponibile un controllo di compatibilità per assicurarsi che il pacchetto sia compatibile con i framework nel progetto. Se il controllo viene superato e il pacchetto non viene fatto riferimento nel file di progetto, viene aggiunto un <PackageReference> elemento al file di progetto. Se il controllo passa e il pacchetto è già a cui viene fatto riferimento nel file di progetto, l'elemento <PackageReference> viene aggiornato alla versione compatibile più recente. Dopo l'aggiornamento del file di progetto, viene eseguito dotnet restore .

Ad esempio, l'aggiunta Microsoft.EntityFrameworkCore a ToDo.csproj produce un output simile all'esempio seguente:

  Determining projects to restore...
  Writing C:\Users\username\AppData\Local\Temp\tmp24A8.tmp
info : Adding PackageReference for package 'Microsoft.EntityFrameworkCore' into project 'C:\ToDo\ToDo.csproj'.
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/index.json
info :   GET https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/0.0.1-alpha/3.1.3.json
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/3.1.4/7.0.0-preview.2.22153.1.json
info :   CACHE https://api.nuget.org/v3/registration5-gz-semver2/microsoft.entityframeworkcore/page/7.0.0-preview.3.22175.1/7.0.0-preview.3.22175.1.json
info :   NotFound https://pkgs.dev.azure.com/dnceng/9ee6d478-d288-47f7-aacc-f6e6d082ae6d/_packaging/516521bf-6417-457e-9a9c-0a4bdfde03e7/nuget/v3/registrations2-semver2/microsoft.entityframeworkcore/index.json 257ms
info : Restoring packages for C:\ToDo\ToDo.csproj...
info : Package 'Microsoft.EntityFrameworkCore' is compatible with all the specified frameworks in project 'C:\ToDo\ToDo.csproj'.
info : PackageReference for package 'Microsoft.EntityFrameworkCore' version '6.0.4' added to file 'C:\ToDo\ToDo.csproj'.
info : Writing assets file to disk. Path: C:\ToDo\obj\project.assets.json
log  : Restored C:\ToDo\ToDo.csproj (in 171 ms).

Il file ToDo.csproj contiene ora un <PackageReference> elemento per il pacchetto a cui si fa riferimento.

<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />

Se il progetto viene caricato in Central Package Management (CPM) l'elemento <PackageVersion> in Directory.Packages.props file viene aggiunto/aggiornato e l'elemento <PackageReference> viene aggiunto al file di progetto.

Attualmente sono supportati gli scenari seguenti. Questi esempi presuppongono che la versione più recente di Microsoft.EntityFrameworkCore sia 6.0.4. Altri scenari correlati a CPM sono documentati in questa specifica di progettazione.

Scenario 1: <PackageReference> non esiste nel file di progetto, <PackageVersion> l'elemento non esiste in Directory.Packages.props filee l'argomento versione non viene passato dalla riga di comando.

Comando dell'interfaccia della riga di comando eseguito: dotnet package add Microsoft.EntityFrameworkCore --project ToDo.csproj

L'elemento <PackageVersion> viene aggiunto all'oggetto Directory.Packages.props file.

<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />

L'elemento <PackageReference> viene aggiunto al file di progetto.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Scenario 2: <PackageReference> non esiste nel file di progetto, <PackageVersion> l'elemento non esiste in Directory.Packages.props filee l'argomento versione viene passato dalla riga di comando.

Comando dell'interfaccia della riga di comando eseguito: dotnet package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj

L'elemento <PackageVersion> viene aggiunto all'oggetto Directory.Packages.props file.

<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />

L'elemento <PackageReference> viene aggiunto al file di progetto.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Scenario 3: <PackageReference> non esiste nel file di progetto, <PackageVersion> l'elemento Directory.Packages.props fileesiste in e l'argomento versione non viene passato dalla riga di comando.

Comando dell'interfaccia della riga di comando eseguito: dotnet package add Microsoft.EntityFrameworkCore --project ToDo.csproj

L'elemento <PackageVersion> viene aggiunto all'oggetto Directory.Packages.props file.

<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />

L'elemento <PackageReference> viene aggiunto al file di progetto.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Scenario 4: <PackageReference> non esiste nel file di progetto, <PackageVersion> l'elemento Directory.Packages.props fileesiste in e l'argomento versione viene passato dalla riga di comando.

Comando dell'interfaccia della riga di comando eseguito: dotnet package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj

L'elemento <PackageVersion> viene aggiunto all'oggetto Directory.Packages.props file.

<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />

L'elemento <PackageReference> viene aggiunto al file di progetto.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Ripristino implicito

Non è necessario eseguire dotnet restore perché viene eseguito in modo implicito da tutti i comandi che richiedono un ripristino, ad esempio dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish e dotnet pack. Per disabilitare il ripristino implicito, usare l'opzione --no-restore.

Il comando dotnet restore è ancora utile in alcuni scenari in cui ha senso eseguire un ripristino esplicito, ad esempio le compilazioni di integrazione continua in Azure DevOps Services o in sistemi di compilazione che richiedono il controllo esplicito quando viene eseguito il ripristino.

Per informazioni su come gestire i feed NuGet, vedere la dotnet restore documentazione.

Argomenti

  • PROJECT

    Specifica il file di progetto. Se non specificato, il comando cerca una nella directory corrente.

  • PACKAGE_NAME

    Riferimento al pacchetto da aggiungere.

Opzioni

  • -f|--framework <FRAMEWORK>

    Aggiunge un riferimento al pacchetto solo quando la destinazione è un framework specifico.

  • -?|-h|--help

    Stampa una descrizione di come usare il comando .

  • --interactive

    Consente al comando di arrestarsi e attendere l'input o l'azione dell'utente, ad esempio il completamento dell'autenticazione.

  • -n|--no-restore

    Aggiunge un riferimento al pacchetto senza eseguire un'anteprima di ripristino e un controllo di compatibilità.

  • --package-directory <PACKAGE_DIRECTORY>

    Directory in cui ripristinare i pacchetti. Il percorso di ripristino del pacchetto predefinito si trova %userprofile%\.nuget\packages in Windows e ~/.nuget/packages in macOS e Linux. Per altre informazioni, vedere Gestione dei pacchetti globali, della cache e delle cartelle temporanee in NuGet.

  • --prerelease

    Consente l'installazione di pacchetti non definitive. Disponibile a partire da .NET Core 5 SDK

  • -s|--source <SOURCE>

    URI dell'origine del pacchetto NuGet da usare durante l'operazione di ripristino.

  • -v|--version <VERSION>

    Versione del pacchetto. Vedere Controllo delle versioni dei pacchetti NuGet.

Esempi

  • Aggiungere Microsoft.EntityFrameworkCore un pacchetto NuGet a un progetto:

    dotnet package add Microsoft.EntityFrameworkCore
    
  • Aggiungere una versione specifica di un pacchetto a un progetto:

    dotnet package add Microsoft.Azure.DocumentDB.Core -v 1.0.0 --project ToDo.csproj
    
  • Aggiungere un pacchetto usando un'origine NuGet specifica:

    dotnet package add Microsoft.AspNetCore.StaticFiles -s https://dotnet.myget.org/F/dotnet-core/api/v3/index.json
    

Vedere anche