Nuget Config: Struktur, Lokasi, dan Cara Konfigurasi Lengkap

Pengertian dan Fungsi NuGet Config

NuGet Config (nuget.config atau NuGet.Config) adalah file konfigurasi berbasis XML yang digunakan oleh manajer paket .NET (NuGet) untuk mengatur perilaku unduhan, sumber paket (package sources), kredensial repositori privat, serta direktori cache penyimpanan. File ini bersifat hierarkis, artinya NuGet membaca konfigurasi mulai dari tingkat direktori proyek, naik ke profil pengguna, hingga tingkat komputer (machine-wide).

Lokasi File NuGet.Config Berdasarkan Sistem Operasi

Secara default, NuGet mencari file konfigurasi di beberapa lokasi spesifik tergantung pada sistem operasi yang digunakan. Tabel berikut merinci lokasi standar tersebut:

Tingkat Konfigurasi Windows macOS / Linux
Solusi / Proyek (Lokal) [Direktori Solusi]/nuget.config [Direktori Solusi]/nuget.config
Pengguna (User) %appdata%\NuGet\NuGet.Config ~/.config/NuGet/NuGet.Config atau ~/.nuget/NuGet/NuGet.Config
Komputer (Machine) %programfiles(x86)%\NuGet\Config /etc/opt/NuGet/Config atau /etc/NuGet/Config

Struktur Dasar dan Contoh Sintaks XML

File konfigurasi NuGet menggunakan format XML standar. Di dalam file ini, Anda dapat mendefinisikan sumber paket tambahan, mengatur kredensial autentikasi, serta menentukan lokasi folder global packages. Berikut adalah contoh sintaks lengkap file nuget.config:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <packageSources>
    <add key="NuGet official site" value="https://api.nuget.org/v3/index.json" />
    <add key="MyCompanyPrivateFeed" value="https://pkgs.dev.azure.com/mycompany/_packaging/myfeed/nuget/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <MyCompanyPrivateFeed>
      <add key="Username" value="[email protected]" />
      <add key="ClearTextPassword" value="PAT_TOKEN_OR_PASSWORD_HERE" />
    </MyCompanyPrivateFeed>
  </packageSourceCredentials>
  <config>
    <add key="globalPackagesFolder" value="C:\MyCustomPackagesFolder" />
    <add key="dependencyVersion" value="Highest" />
  </config>
</configuration>

Perintah CLI untuk Mengelola NuGet Config

Alih-alih mengubah file XML secara manual, Anda dapat menggunakan NuGet CLI atau .NET CLI untuk memanipulasi pengaturan konfigurasi dengan aman. Berikut adalah daftar perintah esensial:

  • Menambah package source baru:
    dotnet nuget add source https://myfeed.com/v3/index.json -n MyFeed -u username -p password --store-password-in-clear-text
  • Menampilkan seluruh sumber aktif:
    dotnet nuget list source
  • Menghapus sumber paket:
    dotnet nuget remove source MyFeed
  • Menghapus cache lokal:
    dotnet nuget locals all --clear

Tips Keamanan dan Troubleshooting Lapangan

Kesalahan umum saat mengelola konfigurasi NuGet biasanya berkaitan dengan autentikasi feed privat dan prioritas sumber paket. Terapkan langkah-langkah berikut untuk mengatasinya:

  1. Gunakan Variabel Lingkungan (Environment Variables): Hindari menuliskan password atau Personal Access Token (PAT) secara plain text di dalam repository publik. Gunakan referensi environment variable pada CI/CD pipeline.
  2. Aturan ClearTextPassword: Jika menggunakan autentikasi token pada sistem operasi non-Windows, pastikan atribut --store-password-in-clear-text diaktifkan agar CLI dapat membaca kredensial dengan benar.
  3. Prioritas Penggabungan (Merging): NuGet menggabungkan konfigurasi dari tingkat bawah (root) hingga atas. Jika sumber paket eksternal diblokir oleh kebijakan perusahaan, gunakan elemen <clear/> di dalam tag <packageSources> pada level proyek untuk mengabaikan sumber global.