Nuget paketi oluşturmanın birden fazla yolu vardır. En bilinen bir kaç yoldan kısaca bahsederek, nuget cli ve nuspec dosyası ile paketimizi kullanıma açacağız.
1-Pipeline kullanarak package oluşturmak
En kolay ve kullanışlı yöntemlerden biridir. Genel olarak bir CI/CD pipeline bağlanarak, paketinizin repositorysinde belirli bir bracnhe yaptığınız commit ile bir artifact üreterek ilgili nuget feede paket versiyonu çıkılır.
2-Visual studio üzerinden package oluşturmak
3-Nuspec file ile package oluşturmak
.nuspec uzantılı dosya üzerinde oluşacak paketin detayları girilir. “nuget pack” yardımı ile oluşan .nupkg uzantılı dosya cli aracılığı ile yada nuget.org arayüzü aracılığı ile kullanıma açılır.
- Nuget paket haline getirmek istediğimiz projemizde (kaynak kod) öncelikle sağ tıklayarak propertylerinde target framework kontrolümüzü yapalım.
- Projemizi “release” konfigurasyonun da derlemek daha sağlıklı olacaktır.
- Propertyler/Build kısmında Xml documention file ayarının açılması , Xml açıklamaları ile paketin kullanımını kolaylaştıracaktır.
/// <summary> /// Firebase Push Notification Send Method /// </summary>
/// <param name="notificationObject">Firebase Api Push Notification Send Method request Model parameter</param>
/// <returns> bool </returns>
- Projemizin ayarlarını yaptıktan sonra projemizi derleyelim (build).
- Bilgisayarımızda nugetin kurulu olduğundan emin olalım. Eğer kurulu değilse buradan indirebilirsiniz.
- Projemizin dosya yoluna ulaşarak cmd ile konsol ekranına geçelim ve “nuget spec” komutunu çalıştırarak nuspec dosyasını oluşturalım.
<?xml version="1.0" encoding="utf-8"?> <package > <metadata> <id>FirebasePushNotification.EnesAys</id> //Paketimizin ismi - Bulunduğu feed içerisinde unique olmalıdır. <version>1.0.0</version> //Paketimizin versionu. $version$ kullanılarak assemblyden version bilgisi alınabilir. Projenizde deterministic ayarı true ise false yapmalısınız. Assembly verrsion da 1.0.* şeklinde bir pattern ile otomatik versiyon numarası kullanabilirsiniz. <title>FirebasePushNotification</title> //Paketimizin Bilgilerinde yer alan başlığımız <authors>Enes Aysan</authors> //Paketi Hazırlayan <owners>Enes Aysan</owners> //Paketin Sahibi <requireLicenseAcceptance>false</requireLicenseAcceptance> //Ekstra bir license uygulamayağız. Default ayarlarda bırakıyoruz. <license type="expression">MIT</license> <projectUrl>https://github.com/EnesAys/FirebasePushNotification</projectUrl> //Projemizin urli <icon>enesAysan-icon.png</icon> //Paket için kullanacağımız ikon <description>Send Push Notification via firebase api</description> //Paketimizin Bilgilerinde yer alan açıklama kısmımız <releaseNotes>First Release</releaseNotes> //Versiyon notlarımız <copyright>Copyright 2020</copyright> <tags>firebase notification push send</tags> //Paketinizin etiketleri <dependencies> //Paketimizn bağımlı olduğu diğer kütüphaneler <group targetFramework="netstandard2.0"> <dependency id="Newtonsoft.Json" version="12.0.3" /> </group> </dependencies> </metadata> <files> //Paketimize dahil edeceğimiz dosyalar <file src="bin\Release\netstandard2.0\FirebasePushNotificaiton.dll" target="lib\netstandard2.0\FirebasePushNotificaiton.dll" /> <file src="bin\Release\netstandard2.0\FirebasePushNotificaiton.xml" target="lib\netstandard2.0\FirebasePushNotificaiton.xml" /> <file src="enesAysan-icon.png" target="" /> </files> </package>
- .nuspec dosyamızı hazırladıktan sonra, .nuspecin bulunduğu dizinde command line üzerinden aşağıdaki komutu girelim.
nuget pack projectName.nuspec
- Bunun için öncelikle nuget.org giriş yapmamız / üye olmamız gerekiyor.
- Daha sonra hesap isminin üzerine tıklayarak buradan API Keys kısmına tıklayalım.
- Eğer api keyimiz varsa regenerate edebiliriz, bir api key regenerate etmeden bir kere kopyalanıyor. Bu yüzden keyimizi dikkatli saklamamız gerekir.
- Eğer bir api keyimiz yok ise create kısmından yeni bir api key oluşturalım.
Burada bir kaç konfigürsayon var. Key Name alanında oluşacak keyimize vereceğimiz ismi girerek, bir expire yani geçerlilik süresi girelim. Paketimizin scope seçeneğinde “Push new packages and package versions” işaretli olmasına dikkat edelim. Glob Pattern kısmında “*” kullanalım.Create seçeneğine tıklayarak oluşan api keyimizi kopyalayalım.Artık cli kullanarak paketimizi kullanıma sunabiliriz. Tek yapmamız gerek command line üzerinden aşağıdaki komutu girmek.dotnet nuget push YourPackageId.nupkg -k Apikey -s https://api.nuget.org/v3/index.json
YourPackageId ve Apikey alanlarını gözden kaçırmayınız. Buraya sizin package id niz ve api keyiniz gelmelidir.Paketiniz başarılı bir şekilde üretildiğinde nuget.org profiliniz üzerinden “Manage Packages” altında paketinizi göreceksiniz.Benim oluşturduğum paketin nuget sayfasına aşağıdaki link ile ulaşabilirsiniz.Oluşturduğum paketin kaynak kodu
Çok başarılı bir çalışma olmuş, elinize sağlık.
Teşekkür ederim.