Nupack adalah cara mudah untuk menghasilkan paket Nuget untuk .NET 4.0+ berdasarkan AssemblyInfo atau Nuspec saat membangun dengan Visual Studio. Ini terwujud sebagai paket Nuget.
Ketika Nupack dirujuk oleh suatu proyek, tidak ada ketergantungan yang dibuat, hanya ada langkah build baru untuk secara otomatis mengemas output proyek ke dalam paket Nuget dengan nama proyek sebagai ID.
Ketika file .nuspec terdeteksi sebagai bagian dari proyek, Nupack menghormati spesifikasi dan tidak menerapkan konfigurasi otomatis apa pun untuk menghasilkan paket Nuget yang diharapkan.
Hasilkan pustaka sederhana (folder lib) dengan dependensi paket nuget. Pola ini secara otomatis berlaku ketika tidak ada file .NUSPEC yang terdeteksi untuk proyek tipe pustaka.
Ketika paket didasarkan pada aplikasi konsol dan .NUSPEC tidak dinyatakan, direktori build didefinisikan dengan file .targets untuk memberikan cara sederhana untuk menambahkan langkah tindakan build sebagai pos build dengan 5 argumen:
Ketergantungan dapat berupa paket Nuget, referensi proyek, dll ... mereka harus dimasukkan secara rekursif dalam paket Nuget yang dihasilkan dengan bentuk yang memadai.
Proses NUGET tidak menyebarkan dokumentasi XML dan sumber daya ketergantungan dalam output dan tidak dapat dipertimbangkan dalam proses pengemasan Nupack. Izinkan Nupack untuk menyebarkannya secara otomatis membantu menjaga struktur dan dokumentasi yang bersih di setiap node.
Nupack dapat menyediakan perpustakaan untuk mengembangkan plugin sebagai paket Nuget. Ini akan mendeteksi plugin dari package.config dan memuatnya dari folder nupack untuk menambahkan perilaku tambahan ke nupack. Plugin akan dipanggil dengan argumen yang diteruskan ke Nupack dan menghasilkan paket paket dari PackageBuilder asli sebelum menyimpan hasil. Plugin dibuang setelah pembuatan Nuget.
Nupack harus membuat paket tertentu untuk menyimpan plugin (perpustakaan) di folder nupack saat referensi proyek nupack.extension.
Ketika Nupack direferensikan oleh aplikasi konsol bernama [Perpustakaan] .optimizer dan referensi perpustakaan bernama [perpustakaan], pola pengoptimal dilakukan. Paket Nuget yang dihasilkan berisi [pustaka] .dll ke folder lib dan [pustaka] .optimizer.exe ditempatkan ke dalam folder build dengan file .targets untuk mengeksekusi pengoptimal pada pasca -pembangunan dengan argumen yang sama daripada tindakan pembuatan standar untuk pola aplikasi konsol. Paket Nuget akan mengambil nama [Perpustakaan] sebagai ID. Ini berarti pola itu tidak dilakukan jika [Perpustakaan] adalah produsen Nuget. Pola pengoptimal akan menjadi titik masuk untuk menulis ulang IL misalnya atau menyiapkan sesuatu berdasarkan penggunaan [perpustakaan] .dll.
Visual Studio 2017 mengubah template integrasi nuget. Nupack harus diperbarui untuk mendukung Visual Studio 2017.
Salah satu hal yang membuat frustrasi dengan Nuget adalah memiliki metadata yang bersih dan penuh. Sayangnya, AssemblyInfo tidak menyediakan cara untuk mengekspos semua kebutuhan Nuget. Di sisi lain, seringkali perlu untuk menyatakan di beberapa tempat informasi yang sama yang menyebabkan masalah sinkronisasi dan menambahkan overhead pemeliharaan. Menggunakan Github.com API untuk secara otomatis menyelesaikan kreasi Nuget bisa menjadi hal yang baik untuk tetap reaktif.