Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här artikeln gäller för: ✔️ .NET 6 SDK och senare versioner
Namn
              dotnet package add – Lägger till eller uppdaterar en paketreferens i en projektfil.
Anmärkning
Om du använder .NET 9 SDK eller tidigare använder du formuläret "verb first" (dotnet add package) i stället. Formuläret "substantiv först" introducerades i .NET 10. Mer information finns i Mer konsekvent kommandoordning.
Sammanfattning
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
Beskrivning
Kommandot dotnet package add 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 package add Microsoft.EntityFrameworkCore --project ToDo.csproj
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 package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj
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 package add Microsoft.EntityFrameworkCore --project ToDo.csproj
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 package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj
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 dotnet restore dokumentationen.
Argumentpunkter
- 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\packagesi Windows och- ~/.nuget/packagesi macOS och Linux. Mer information finns i Hantera globala paket, cacheminnen och temporära mappar i NuGet.
- --prerelease- Tillåter att förhandsversionspaket installeras. 
- -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.EntityFrameworkCoreNuGet-paket i ett projekt:- dotnet package add Microsoft.EntityFrameworkCore
- Lägg till en specifik version av ett paket i ett projekt: - dotnet package add Microsoft.Azure.DocumentDB.Core -v 1.0.0 --project ToDo.csproj
- Lägg till ett paket med en specifik NuGet-källa: - dotnet package add Microsoft.AspNetCore.StaticFiles -s https://dotnet.myget.org/F/dotnet-core/api/v3/index.json