Bagikan melalui


Apa yang terjadi ketika paket NuGet diinstal?

Sederhananya, alat NuGet yang berbeda biasanya membuat referensi ke paket dalam file proyek atau packages.config, lalu melakukan pemulihan paket, yang secara efektif menginstal paket. Pengecualiannya adalah nuget install, yang hanya memperluas paket ke dalam packages folder dan tidak mengubah file lain.

Proses umumnya adalah sebagai berikut:

  1. (Semua alat kecuali nuget.exe) Rekam pengidentifikasi dan versi paket ke dalam file proyek atau packages.config.

    Jika alat penginstalan adalah Visual Studio atau dotnet CLI, alat pertama-tama mencoba menginstal paket. Jika tidak kompatibel, paket tidak ditambahkan ke file proyek atau packages.config.

  2. Dapatkan paket:

    • Periksa apakah paket (dengan pengidentifikasi dan nomor versi yang tepat) sudah diinstal di folder paket global seperti yang dijelaskan tentang Mengelola paket global dan folder cache.

    • Jika paket tidak berada di folder paket global, coba ambil dari sumber yang tercantum dalam file konfigurasi. Konfigurasi Pemetaan Sumber Paket diterapkan pada titik ini. Untuk sumber online, coba terlebih dahulu untuk mengambil paket dari cache HTTP kecuali -NoHttpCache ditentukan dengan nuget.exe perintah atau --no-http-cache ditentukan dengan dotnet restore. (Visual Studio dan dotnet add package selalu gunakan cache.) Jika paket digunakan dari cache, "CACHE" muncul dalam output. Cache memiliki waktu kedaluwarsa 30 menit.

    • Jika paket telah ditentukan menggunakan versi mengambang, atau tanpa versi minimum, NuGet akan menghubungi semua sumber untuk mengetahui kecocokan terbaik. Contoh: 1.*, (, 2.0.0].

    • Jika paket tidak ada di cache HTTP, coba unduh dari sumber yang tercantum dalam konfigurasi. Jika paket diunduh, "GET" dan "OK" muncul dalam output. NuGet mencatat lalu lintas http pada verbositas normal.

    • Jika paket tidak berhasil diperoleh dari sumber apa pun, penginstalan gagal pada saat ini dengan kesalahan seperti NU1103. Perhatikan bahwa kesalahan dari nuget.exe perintah hanya menampilkan sumber terakhir yang dicentang, tetapi menyiratkan bahwa paket tidak tersedia dari sumber apa pun.

    Saat memperoleh paket, urutan sumber dalam konfigurasi NuGet mungkin berlaku:

    • NuGet memeriksa sumber folder lokal dan berbagi jaringan sebelum memeriksa sumber HTTP.
  3. Simpan salinan paket dan informasi lain di folder http-cache seperti yang dijelaskan pada Mengelola paket global dan folder cache.

  4. Jika diunduh, instal paket ke folder paket global per pengguna. NuGet membuat subfolder untuk setiap pengidentifikasi paket, lalu membuat subfolder untuk setiap versi paket yang diinstal.

  5. NuGet menginstal dependensi paket sesuai kebutuhan. Proses ini mungkin memperbarui versi paket dalam proses, seperti yang dijelaskan dalam Resolusi Dependensi.

  6. Perbarui file dan folder proyek lainnya:

    • Untuk proyek yang menggunakan PackageReference, perbarui grafik dependensi paket yang disimpan di obj/project.assets.json. Isi paket itu sendiri tidak disalin ke dalam folder proyek apa pun.
    • Perbarui app.config dan/atau web.config jika paket menggunakan transformasi file sumber dan konfigurasi.
  7. (Hanya Visual Studio) Tampilkan file readme paket, jika tersedia, di jendela Visual Studio.

Nikmati pengkodian produktif Anda dengan paket NuGet!