Bagikan melalui


dotnet add package

Artikel ini berlaku untuk: ✔️ .NET Core 3.1 SDK dan versi yang lebih baru

Nama

dotnet add package - Menambahkan atau memperbarui referensi paket dalam file proyek.

Sinopsis

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

Deskripsi

Perintah ini dotnet add package menyediakan opsi yang nyaman untuk menambahkan atau memperbarui referensi paket dalam file proyek. Saat Anda menjalankan perintah, ada pemeriksaan kompatibilitas untuk memastikan paket kompatibel dengan kerangka kerja dalam proyek. Jika pemeriksaan lolos dan paket tidak dirujuk dalam file proyek, <PackageReference> elemen ditambahkan ke file proyek. Jika pemeriksaan lolos dan paket sudah dirujuk dalam file proyek, elemen diperbarui <PackageReference> ke versi terbaru yang kompatibel. Setelah file proyek diperbarui, pemulihan dotnet dijalankan.

Misalnya, menambahkan Microsoft.EntityFrameworkCore ke ToDo.csproj menghasilkan output yang mirip dengan contoh berikut:

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

File ToDo.csproj sekarang berisi <PackageReference> elemen untuk paket yang dirujuk.

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

Jika proyek di-onboard ke Central Package Management (CPM) <PackageVersion> elemen dalam ditambahkan/diperbarui Directory.Packages.props file dan <PackageReference> elemen ditambahkan ke file proyek.

Skenario berikut saat ini didukung. Contoh-contoh ini mengasumsikan bahwa versi terbaru adalah Microsoft.EntityFrameworkCore 6.0.4. Skenario tambahan yang terkait dengan CPM didokumenkan dalam spesifikasi desain ini.

Skenario 1: <PackageReference> tidak ada dalam file proyek, <PackageVersion> elemen tidak ada di Directory.Packages.props file, dan argumen versi tidak diteruskan dari baris perintah.

Perintah CLI yang dijalankan: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore

Elemen <PackageVersion> ditambahkan ke Directory.Packages.props file.

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

Elemen <PackageReference> ditambahkan ke file proyek.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Skenario 2: <PackageReference> tidak ada dalam file proyek, <PackageVersion> elemen tidak ada di Directory.Packages.props file, dan argumen versi diteruskan dari baris perintah.

Perintah CLI yang dijalankan: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore --version 5.0.4

Elemen <PackageVersion> ditambahkan ke Directory.Packages.props file.

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

Elemen <PackageReference> ditambahkan ke file proyek.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Skenario 3: <PackageReference> tidak ada dalam file proyek, <PackageVersion> elemen memang ada di Directory.Packages.props file, dan argumen versi tidak diteruskan dari baris perintah.

Perintah CLI yang dijalankan: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore

Elemen <PackageVersion> ditambahkan ke Directory.Packages.props file.

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

Elemen <PackageReference> ditambahkan ke file proyek.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Skenario 4: <PackageReference> tidak ada dalam file proyek, <PackageVersion> elemen memang ada di Directory.Packages.props file, dan argumen versi diteruskan dari baris perintah.

Perintah CLI yang dijalankan: dotnet add ToDo.csproj package Microsoft.EntityFrameworkCore --version 5.0.4

Elemen <PackageVersion> ditambahkan ke Directory.Packages.props file.

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

Elemen <PackageReference> ditambahkan ke file proyek.

<PackageReference Include="Microsoft.EntityFrameworkCore" />

Pemulihan implisit

Anda tidak harus menjalankan dotnet restore karena dijalankan secara implisit oleh semua perintah yang memerlukan terjadinya pemulihan, seperti dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish, dan dotnet pack. Untuk menonaktifkan pemulihan implisit, gunakan opsi --no-restore.

Perintah dotnet restore masih berguna dalam skenario tertentu di mana pemulihan secara eksplisit masuk akal, seperti pembangunan integrasi berkelanjutan di Azure DevOps Services atau dalam sistem pembangunan yang perlu secara eksplisit mengontrol saat pemulihan terjadi.

Untuk informasi tentang cara mengelola umpan NuGet, lihat dotnet restore dokumentasi.

Argumen

  • PROJECT

    Menentukan file proyek. Jika tidak ditentukan, perintah mencari direktori saat ini untuk satu direktori.

  • PACKAGE_NAME

    Referensi paket untuk ditambahkan.

Opsi

  • -f|--framework <FRAMEWORK>

    Menambahkan referensi paket hanya saat menargetkan kerangka kerja tertentu.

  • -?|-h|--help

    Mencetak deskripsi cara menggunakan perintah.

  • --interactive

    Memungkinkan perintah berhenti dan menunggu input atau tindakan pengguna. Misalnya, untuk menyelesaikan autentikasi.

  • -n|--no-restore

    Menambahkan referensi paket tanpa melakukan pratinjau pemulihan dan pemeriksaan kompatibilitas.

  • --package-directory <PACKAGE_DIRECTORY>

    Direktori tempat memulihkan paket. Lokasi pemulihan paket default ada %userprofile%\.nuget\packages di Windows dan ~/.nuget/packages di macOS dan Linux. Untuk informasi selengkapnya, lihat Mengelola paket global, cache, dan folder sementara di NuGet.

  • --prerelease

    Memungkinkan paket prarilis diinstal. Tersedia sejak .NET Core 5 SDK

  • -s|--source <SOURCE>

    URI sumber paket NuGet yang akan digunakan selama operasi pemulihan.

  • -v|--version <VERSION>

    Versi paket. Lihat Penerapan versi paket NuGet.

Contoh

  • Tambahkan Microsoft.EntityFrameworkCore paket NuGet ke proyek:

    dotnet add package Microsoft.EntityFrameworkCore
    
  • Tambahkan versi paket tertentu ke proyek:

    dotnet add ToDo.csproj package Microsoft.Azure.DocumentDB.Core -v 1.0.0
    
  • Tambahkan paket menggunakan sumber NuGet tertentu:

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

Lihat juga