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