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 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" />
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 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 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