Membuat Paket NuGet

Posted by Kamarudin • 2 minute read • Comments

Sedikit lagi tentang NuGet, pada postingan sebelumnya kita sudah berhasil menginstall server NuGet lokal baik untuk keperluan pribadi atau internal kantor.

Ada beberapa alasan kenapa kita sebaiknya mempunyai server NuGet sendiri, dua diantaranya :

  1. Untuk menghemat bandwidth internet
  2. Sebagai media sharing library

Nah pada postingan kali saya akan memberikan contoh untuk alasan nomor 2.

Misalkan kita bekerja di dalam sebuah tim, kemudian kita ditugaskan untuk membuat sebuah library dengan nama CalculatorLib, yang mana library ini akan digunakan oleh beberapa orang programmer.

Untuk versi awal (1.0.0) hanya mempunyai dua buah method yaitu :

  • Penjumlahan
  • Pengurangan

1

Setelah selesai kita pun segera merilisnya agar bisa digunakan.

2

Ada beberapa media yang bisa kita gunakan untuk mendistribusikannya :

  1. Flash disk
  2. Share folder
  3. Server NuGet Lokal
  4. Media lainnya

Terserah Anda mau menggunakan cara yang mana, kalo saya untuk saat ini jelas memilih media yang nomor 3.

Membuat paket NuGet

Agar library yang baru kita buat (CalculatorLib.dll), bisa dibaca oleh server NuGet, tentunya tidak bisa langsung dicopy ke folder package NuGet Server tetapi ada tahapan yang harus kita kerjakan.

  1. Download NuGet.exe
  2. Membuat skrip XML kemudian simpan dengan ekstensi .nuspec, jangan lupa untuk menyimpannya di folder yang sama dengan file NuGet.exe
  3. Meng-compile skrip .nuspec untuk menghasilkan file .nupkg, nah file .nupkg ini lah yang akan kita copykan ke folder package NuGet Server

Contoh isi file .nuspec

10

Untuk informasi lebih lengkap tentang file nuspec bisa langsung meluncur kesini.

Untuk meng-compile skrip .nuspec gunakan perintah berikut :

NuGet pack "nama_file_nuspec.nuspec" -o "folder_output"

Contoh :

NuGet pack "CalculatorLib.nuspec" -o "D:\ServerNuGetLocal\Packages"

Jika berhasil akan dibuatkan file baru dengan nama CalculatorLib.1.0.0.nupkg.

3

Sampai tahap ini kita sudah berhasil membuat file paket NuGet.

Jika kita mempunyai banyak file .nuspec, dan untuk mempermudah meng-compile skrip .nuspec, kita bisa memanfaatkan registry windows untuk menambahkan context menu “Build NuGet Package” setiap mengklik kanan file dengan ekstensi .nuspec.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\.nuspec]

[HKEY_CLASSES_ROOT\.nuspec\Shell]

[HKEY_CLASSES_ROOT\.nuspec\Shell\BuildNuGet]
@="Build NuGet Package"

[HKEY_CLASSES_ROOT\.nuspec\Shell\BuildNuGet\Command]
@="E:\\Master\\Developer Tools\\nuget package\\build\\NuGet.exe pack \"%1\" -o \"E:\\Master\\Developer Tools\\nuget package\\build\\package\""

Pada skrip di atas tinggal sesuaikan lokasi file NuGet.exe dan folder target.

14

Mengakses paket CalculatorLib dari NuGet Package Manager

Untuk mendemokan ini, saya akan membuat project baru dengan nama CalculatorApp, kemudian menambahkan library CalculatorLib via NuGet Package Manager.

3

pada dialog NuGet Package Manager pilih paket CalculatorLib kemudian Install.

4

jika berhasil pada node References sudah ditambahkan library CalculatorLib.

5

Sekarang kita coba untuk membuat objek dari class Calculator.

6

Sipp method yang nampil sesuai dengan yang sudah kita definisikan di dalam library CalculatorLib versi awal (1.0.0)

CalculatorLib Versi 1.1.0

Library CalculatorLib yang sudah kita buat (versi 1.0.0), baru mempunyai dua method yaitu : Penjumlahan dan Pengurangan.

Kita akan menambahkan dua method lagi yaitu Perkalian dan Pembagian.

7

Sebelum merilis ulang (build) library ini, naikkan dulu nilai versinya menjadi 1.1.0

8

kemudian edit juga file nuspecnya, dengan mengganti nilai versionnya menjadi 1.1.0

9

Compile ulang skrip .nuspec gunakan perintah berikut :

NuGet pack "CalculatorLib.nuspec" -o "D:\ServerNuGetLocal\Packages"

jika berhasil kita akan mempunyai file paket CalculatorLib terbaru dengan versi 1.1.0

11

Sekarang kita aktifkan lagi project CalculatorAppnya, kemudian cek NuGet Package Manager, apakah sudah ada updatean untuk paket CalculatorLibnya.

12

Yuph ternyata sudah ada, langsung saja di update kemudian kita cek lagi source code CalculatorApp, apa sudah ada tambahan dua method lagi ?

13

Selamat mencoba :blush:

Comments