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:
- 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.
- Aturan ClearTextPassword: Jika menggunakan autentikasi token pada sistem operasi non-Windows, pastikan atribut
--store-password-in-clear-textdiaktifkan agar CLI dapat membaca kredensial dengan benar. - 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.