dotnet add package
Tento článek se vztahuje na: ✔️ .NET Core 3.1 SDK a novější verze
Název
dotnet add package
– Přidá nebo aktualizuje odkaz na balíček v souboru projektu.
Synopse
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
Popis
Příkaz dotnet add package
poskytuje pohodlnou možnost přidání nebo aktualizace odkazu na balíček v souboru projektu. Při spuštění příkazu je kontrola kompatibility, která zajistí, že je balíček kompatibilní s architekturami v projektu. Pokud kontrola projde a na balíček se v souboru projektu neodkazuje, <PackageReference>
přidá se do souboru projektu prvek. Pokud kontrola projde a balíček je již odkazován v souboru projektu, <PackageReference>
element se aktualizuje na nejnovější kompatibilní verzi. Po aktualizaci souboru projektu se spustí dotnet restore .
Například přidání Microsoft.EntityFrameworkCore
do ToDo.csproj vytvoří výstup podobný následujícímu příkladu:
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).
Soubor ToDo.csproj teď obsahuje <PackageReference>
prvek odkazovaného balíčku.
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
Pokud je projekt onboardován do centrální správy balíčků (CPM), <PackageVersion>
element v Directory.Packages.props file
přidání nebo aktualizaci a <PackageReference>
element se přidá do souboru projektu.
V současné době se podporují následující scénáře. Tyto příklady předpokládají, že nejnovější verze Microsoft.EntityFrameworkCore
je 6.0.4. Další scénáře související s CPM jsou popsané v této specifikaci návrhu.
Scénář 1: <PackageReference>
v souboru projektu neexistuje, <PackageVersion>
element neexistuje v objektu Directory.Packages.props file
a argument verze se nepředá z příkazového řádku.
Příkaz rozhraní příkazového řádku, který se spustí: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore
Prvek <PackageVersion>
se přidá do objektu Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
Prvek <PackageReference>
se přidá do souboru projektu.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Scénář 2: <PackageReference>
v souboru projektu neexistuje, <PackageVersion>
element neexistuje v objektu Directory.Packages.props file
a argument verze se předává z příkazového řádku.
Příkaz rozhraní příkazového řádku, který se spustí: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore --version 5.0.4
Prvek <PackageVersion>
se přidá do objektu Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
Prvek <PackageReference>
se přidá do souboru projektu.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Scénář 3: <PackageReference>
v souboru projektu neexistuje, <PackageVersion>
element existuje v objektu Directory.Packages.props file
a argument verze se nepředá z příkazového řádku.
Příkaz rozhraní příkazového řádku, který se spustí: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore
Prvek <PackageVersion>
se přidá do objektu Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="6.0.4" />
Prvek <PackageReference>
se přidá do souboru projektu.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Scénář 4: <PackageReference>
v souboru projektu neexistuje, <PackageVersion>
element existuje v objektu Directory.Packages.props file
a argument verze se předává z příkazového řádku.
Příkaz rozhraní příkazového řádku, který se spustí: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore --version 5.0.4
Prvek <PackageVersion>
se přidá do objektu Directory.Packages.props file
.
<PackageVersion Include="Microsoft.EntityFrameworkCore" Version="5.0.4" />
Prvek <PackageReference>
se přidá do souboru projektu.
<PackageReference Include="Microsoft.EntityFrameworkCore" />
Implicitní obnovení
Nemusíte spouštětdotnet restore
, protože se spouští implicitně všemi příkazy, které vyžadují obnovení, například dotnet new
, , dotnet build
, dotnet run
, dotnet test
dotnet publish
a dotnet pack
. Pokud chcete zakázat implicitní obnovení, použijte tuto --no-restore
možnost.
Příkaz dotnet restore
je stále užitečný v určitých scénářích, kdy explicitní obnovení dává smysl, například sestavení kontinuální integrace ve službě Azure DevOps Services nebo v systémech sestavení, které potřebují explicitně řídit, kdy dojde k obnovení.
Informace o správě informačních kanálů NuGet najdete v dotnet restore
dokumentaci.
Argumenty
PROJECT
Určuje soubor projektu. Pokud není zadaný, příkaz vyhledá aktuální adresář.
PACKAGE_NAME
Odkaz na balíček, který chcete přidat.
Možnosti
-f|--framework <FRAMEWORK>
Přidá odkaz na balíček pouze při cílení na konkrétní architekturu.
-?|-h|--help
Vytiskne popis použití příkazu.
--interactive
Umožňuje příkazu zastavit a čekat na uživatelský vstup nebo akci. Například k dokončení ověřování.
-n|--no-restore
Přidá odkaz na balíček bez provedení kontroly náhledu obnovení a kompatibility.
--package-directory <PACKAGE_DIRECTORY>
Adresář, kam se mají balíčky obnovit. Výchozí umístění obnovení balíčku je
%userprofile%\.nuget\packages
ve Windows a~/.nuget/packages
v macOS a Linuxu. Další informace najdete v tématu Správa globálních balíčků, mezipaměti a dočasných složek v NuGetu.--prerelease
Umožňuje instalaci předem připravených balíčků. K dispozici od sady .NET Core 5 SDK
-s|--source <SOURCE>
Identifikátor URI zdroje balíčku NuGet, který se má použít během operace obnovení.
-v|--version <VERSION>
Verze balíčku. Viz správa verzí balíčků NuGet.
Příklady
Přidání
Microsoft.EntityFrameworkCore
balíčku NuGet do projektu:dotnet add package Microsoft.EntityFrameworkCore
Přidejte do projektu konkrétní verzi balíčku:
dotnet add ToDo.csproj package Microsoft.Azure.DocumentDB.Core -v 1.0.0
Přidejte balíček pomocí konkrétního zdroje NuGet:
dotnet add package Microsoft.AspNetCore.StaticFiles -s https://dotnet.myget.org/F/dotnet-core/api/v3/index.json