Udostępnij za pośrednictwem


dotnet package add

Ten artykuł dotyczy: ✔️ zestaw .NET Core 3.1 SDK i nowsze wersje

Nazwa

dotnet package add — Dodaje lub aktualizuje odwołanie do pakietu w pliku projektu.

Uwaga

Jeśli używasz zestawu .NET 9 SDK lub starszego, zamiast tego użyj formularza "czasownik pierwszy" (dotnet add package). W programie .NET 10 wprowadzono formę "pierwszej ciołki". Aby uzyskać więcej informacji, zobacz Bardziej spójne kolejność poleceń.

Streszczenie

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

Opis

Polecenie dotnet package add zapewnia wygodną opcję dodawania lub aktualizowania odwołania do pakietu w pliku projektu. Po uruchomieniu polecenia jest sprawdzana zgodność, aby upewnić się, że pakiet jest zgodny ze strukturami w projekcie. Jeśli sprawdzanie przebiegnie pomyślnie, a pakiet nie jest przywoływany w pliku projektu, <PackageReference> element zostanie dodany do pliku projektu. Jeśli sprawdzanie zakończy się pomyślnie, a pakiet jest już przywołyany w pliku projektu, <PackageReference> element zostanie zaktualizowany do najnowszej zgodnej wersji. Po zaktualizowaniu pliku projektu zostanie uruchomione przywracanie dotnet .

Na przykład dodanie Microsoft.EntityFrameworkCore do pliku ToDo.csproj generuje dane wyjściowe podobne do następującego przykładu:

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

Plik ToDo.csproj zawiera <PackageReference> teraz element dla przywołytowanego pakietu.

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

Jeśli projekt jest dołączany do centralnego zarządzania pakietami (CPM),<PackageVersion> element w Directory.Packages.props file pliku zostanie dodany/zaktualizowany, a <PackageReference> element zostanie dodany do pliku projektu.

Obecnie obsługiwane są następujące scenariusze. W tych przykładach przyjęto założenie, że najnowsza wersja programu Microsoft.EntityFrameworkCore to 6.0.4. Dodatkowe scenariusze związane z cpm są udokumentowane w tej specyfikacji projektu.

Scenariusz 1: <PackageReference> nie istnieje w pliku projektu, <PackageVersion> element nie istnieje w elememencie Directory.Packages.props file, a argument wersji nie jest przekazywany z wiersza polecenia.

Wykonywane polecenie interfejsu wiersza polecenia: dotnet package add Microsoft.EntityFrameworkCore --project ToDo.csproj

Element <PackageVersion> jest dodawany do elementu Directory.Packages.props file.

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

Element <PackageReference> jest dodawany do pliku projektu.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Scenariusz 2: <PackageReference> nie istnieje w pliku projektu, <PackageVersion> element nie istnieje w elememencie Directory.Packages.props file, a argument wersji jest przekazywany z wiersza polecenia.

Wykonywane polecenie interfejsu wiersza polecenia: dotnet package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj

Element <PackageVersion> jest dodawany do elementu Directory.Packages.props file.

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

Element <PackageReference> jest dodawany do pliku projektu.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Scenariusz 3: <PackageReference> nie istnieje w pliku projektu, <PackageVersion> element istnieje w elememencie Directory.Packages.props file, a argument wersji nie jest przekazywany z wiersza polecenia.

Wykonywane polecenie interfejsu wiersza polecenia: dotnet package add Microsoft.EntityFrameworkCore --project ToDo.csproj

Element <PackageVersion> jest dodawany do elementu Directory.Packages.props file.

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

Element <PackageReference> jest dodawany do pliku projektu.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Scenariusz 4: <PackageReference> nie istnieje w pliku projektu, <PackageVersion> element istnieje w elememencie Directory.Packages.props file, a argument wersji jest przekazywany z wiersza polecenia.

Wykonywane polecenie interfejsu wiersza polecenia: dotnet package add Microsoft.EntityFrameworkCore --version 5.0.4 --project ToDo.csproj

Element <PackageVersion> jest dodawany do elementu Directory.Packages.props file.

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

Element <PackageReference> jest dodawany do pliku projektu.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Niejawne przywracanie

Nie musisz uruchamiać dotnet restore, ponieważ jest ona uruchamiana niejawnie przez wszystkie polecenia, które wymagają przywrócenia, takie jak dotnet new, dotnet build, dotnet run, dotnet test, dotnet publishi dotnet pack. Aby wyłączyć niejawne przywracanie, użyj opcji --no-restore.

Polecenie dotnet restore jest nadal przydatne w niektórych scenariuszach, w których jawne przywracanie pakietów ma sens, takie jak w budowaniu ciągłej integracji w środowisku Azure DevOps Services lub w systemach kompilacji, które muszą jawnie kontrolować, kiedy następuje przywracanie pakietów.

Aby uzyskać informacje na temat zarządzania kanałami informacyjnymi NuGet, zobacz dokumentację dotnet restore.

Argumenty (w programowaniu)

  • PROJECT

    Określa plik projektu. Jeśli nie zostanie określony, polecenie przeszukuje bieżący katalog dla jednego.

  • PACKAGE_NAME

    Odwołanie do pakietu do dodania.

Opcje

  • -f|--framework <FRAMEWORK>

    Dodaje odwołanie do pakietu tylko wtedy, gdy jest przeznaczona dla określonej platformy.

  • -?|-h|--help

    Wyświetla opis sposobu używania polecenia .

  • --interactive

    Umożliwia zatrzymanie polecenia i oczekiwanie na wprowadzenie lub działanie użytkownika. Na przykład w celu ukończenia uwierzytelniania.

  • -n|--no-restore

    Dodaje odwołanie do pakietu bez przeprowadzania podglądu przywracania i sprawdzania zgodności.

  • --package-directory <PACKAGE_DIRECTORY>

    Katalog, w którym można przywrócić pakiety. Domyślna lokalizacja przywracania pakietu znajduje się %userprofile%\.nuget\packages w systemach Windows i ~/.nuget/packages macOS i Linux. Aby uzyskać więcej informacji, zobacz Zarządzanie globalnymi pakietami, pamięcią podręczną i folderami tymczasowymi w programie NuGet.

  • --prerelease

    Umożliwia zainstalowanie pakietów wstępnych. Dostępne od zestawu .NET Core 5 SDK

  • -s|--source <SOURCE>

    Identyfikator URI źródła pakietu NuGet do użycia podczas operacji przywracania.

  • -v|--version <VERSION>

    Wersja pakietu. Zobacz Przechowywanie wersji pakietów NuGet.

Przykłady

  • Dodaj Microsoft.EntityFrameworkCore pakiet NuGet do projektu:

    dotnet package add Microsoft.EntityFrameworkCore
    
  • Dodaj określoną wersję pakietu do projektu:

    dotnet package add Microsoft.Azure.DocumentDB.Core -v 1.0.0 --project ToDo.csproj
    
  • Dodaj pakiet przy użyciu określonego źródła NuGet:

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

Zobacz też