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 Core 3.1 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 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" />
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 publish
och 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\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 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