Dela via


dotnet-tilläggspaket

Den här artikeln gäller för: ✔️ .NET Core 3.1 SDK och senare versioner

Name

dotnet add package – Lägger till eller uppdaterar en paketreferens i en projektfil.

Sammanfattning

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

dotnet add package -h|--help

beskrivning

Kommandot dotnet add package ger ett bekvämt alternativ för att lägga till eller uppdatera en paketreferens i en projektfil. När du kör kommandot finns det en kompatibilitetskontroll för att säkerställa att paketet är kompatibelt med ramverken i projektet. Om kontrollen godkänns och paketet inte refereras till i projektfilen läggs ett <PackageReference> element till i projektfilen. Om kontrollen godkänns och paketet redan refereras till i projektfilen uppdateras elementet <PackageReference> till den senaste kompatibla versionen. När projektfilen har uppdaterats körs dotnet-återställningen .

Om du till exempel lägger Microsoft.EntityFrameworkCore till i ToDo.csproj genereras utdata som liknar följande exempel:

  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).

Filen ToDo.csproj innehåller nu ett <PackageReference> element för det refererade paketet.

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

Om projektet registreras i CPM (Central Package Management) läggs elementet <PackageVersion> i Directory.Packages.props file till/uppdateras och elementet <PackageReference> läggs till i projektfilen.

Följande scenarier stöds för närvarande. Dessa exempel förutsätter att den senaste versionen av Microsoft.EntityFrameworkCore är 6.0.4. Ytterligare scenarier som rör CPM dokumenteras i den här designspecifikationen.

Scenario 1: <PackageReference> finns inte i projektfilen, <PackageVersion> elementet finns inte i Directory.Packages.props file, och versionsargumentet skickas inte från kommandoraden.

CLI-kommando som körs: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore

Elementet <PackageVersion> läggs till i Directory.Packages.props file.

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

Elementet <PackageReference> läggs till i projektfilen.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Scenario 2: <PackageReference> finns inte i projektfilen, <PackageVersion> elementet finns inte i Directory.Packages.props fileoch versionsargumentet skickas från kommandoraden.

CLI-kommando som körs: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore --version 5.0.4

Elementet <PackageVersion> läggs till i Directory.Packages.props file.

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

Elementet <PackageReference> läggs till i projektfilen.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Scenario 3: <PackageReference> finns inte i projektfilen, <PackageVersion> elementet finns i Directory.Packages.props file, och versionsargumentet skickas inte från kommandoraden.

CLI-kommando som körs: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore

Elementet <PackageVersion> läggs till i Directory.Packages.props file.

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

Elementet <PackageReference> läggs till i projektfilen.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Scenario 4: <PackageReference> finns inte i projektfilen, <PackageVersion> elementet finns i Directory.Packages.props file, och versionsargumentet skickas från kommandoraden.

CLI-kommando som körs: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore --version 5.0.4

Elementet <PackageVersion> läggs till i Directory.Packages.props file.

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

Elementet <PackageReference> läggs till i projektfilen.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Implicit återställning

Du behöver inte köra dotnet restore eftersom den körs implicit av alla kommandon som kräver en återställning, till exempel dotnet new, dotnet build, dotnet run, dotnet test, dotnet publishoch dotnet pack. Om du vill inaktivera implicit återställning använder du alternativet --no-restore .

Kommandot dotnet restore är fortfarande användbart i vissa scenarier där det är meningsfullt att uttryckligen återställa, till exempel kontinuerliga integreringsversioner i Azure DevOps Services eller i byggsystem som uttryckligen behöver styra när återställningen sker.

Information om hur du hanterar NuGet-feeds finns i dokumentationendotnet restore.

Argument

  • PROJECT

    Anger projektfilen. Om det inte anges söker kommandot i den aktuella katalogen efter en.

  • PACKAGE_NAME

    Paketreferensen som ska läggas till.

Alternativ

  • -f|--framework <FRAMEWORK>

    Lägger bara till en paketreferens när du riktar in dig på ett specifikt ramverk.

  • -?|-h|--help

    Skriver ut en beskrivning av hur du använder kommandot.

  • --interactive

    Tillåter att kommandot stoppar och väntar på användarens indata eller åtgärd. Till exempel för att slutföra autentiseringen.

  • -n|--no-restore

    Lägger till en paketreferens utan att utföra en återställningsförhandsgranskning och kompatibilitetskontroll.

  • --package-directory <PACKAGE_DIRECTORY>

    Katalogen där paketen ska återställas. Standardplatsen för paketåterställning finns %userprofile%\.nuget\packages i Windows och ~/.nuget/packages i macOS och Linux. Mer information finns i Hantera globala paket, cacheminnen och temporära mappar i NuGet.

  • --prerelease

    Tillåter att förhandsversionspaket installeras. Tillgänglig sedan .NET Core 5 SDK

  • -s|--source <SOURCE>

    URI:n för NuGet-paketkällan som ska användas under återställningsåtgärden.

  • -v|--version <VERSION>

    Version av paketet. Se Versionshantering av NuGet-paket.

Exempel

  • Lägg till Microsoft.EntityFrameworkCore NuGet-paket i ett projekt:

    dotnet add package Microsoft.EntityFrameworkCore
    
  • Lägg till en specifik version av ett paket i ett projekt:

    dotnet add ToDo.csproj package Microsoft.Azure.DocumentDB.Core -v 1.0.0
    
  • Lägg till ett paket med en specifik NuGet-källa:

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

Se även