Github üzerinde dotnet paketi yayınlama

Çoğumuz bazı projelerde yazdığımız kodların aynısına ihtiyaç duyabiliyoruz ve bu kodları taşıma yöntemimiz ilkel olabiliyor, kopyala yapıştır yani. Ancak tekrar tekrar kullanabileceğimiz kodları paket haline getirip bunları sonradan kullanabilmek üzere github üzerinde ücretsiz bir şekilde yayınlayabileceğinizi ve sonradan kullanabileceğinizi biliyor muydunuz? Hadi gelin bu gün birlikte dotnet paketi oluşturup bunu github üzerinde yayınlayalım.

Öncelikle projemizi oluşturmamız gerekiyor. Sadece kodları kullanacağımız ve herhangi bir şekilde kodları execute etmeyeceğimiz için tercihim classlibrary’den yana.

Ben projemin adına EY.StringExtensions dedim siz istediğiniz ismi verebilirsiniz.

C# üzerinde sıkça kullanmak zorunda olduğumuz bir mesajın hash karşılığını alan extension class’ı yazacağım, bunun içerisinde md5 ve sha1 olarak 2 yaygın hashleme methodunu yapan bir extension class yazalım.

Gördüğünüz gibi sınıf içerisinde sadece iki fonksiyon var ToSha1Hash ve ToMd5Hash normalde c# içerisinde bu hash değerlerini gördüğünüz yöntemlerle elde etmekteyiz ancak bu paket sayesinde bir extension method olarak kullanabileceğiz.

Şimdi gelelim paketimizi özelleştirebileceğimiz kısımlara.

Projemizi oluşturduğumu .csproj dosyası içerisinde proje bilgilerimiz barınıyor burada oluşturacak olduğumuz extension class paketimiz için tanımlamaları yapmalıyız, örneğin hangi versiyon ? veya üretcisi kim ? gibi gibi bilgiler

Burada vermiş olduğum etiketleri .csproj dosyamız içerisinde <PropertyGroup> içerisinde vermeliyiz, benim projemdeki son hali aşağıdaki şekilde

Tamamdır şimdi geldi sıra projemizi paket haline getirmeye.

yukarıdaki komut ile kodlarımızı paket haline getirmekteyiz

Not: Pack komutunda projenizin yolunu belirtmeden çalıştırmak istiyorsanız terminaldeki konumunuz projenizin .csproj konumuyla aynı olmalıdır, eğer değil ise.

MSBUILD : error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file. Hatası alabilirsiniz böyle bir durumda projenin yolunu belirtmelisiniz

Yukarıdaki kodu çalıştırdığınız dizinde bir adet out isimli klasör oluşacak ve içerisinde ise sonu npkg adlı bir dosya oluşacaktır. Bu bizim oluşturduğumuz paket. Bu paketi github üzerinde yayınlayabilmek için. Öncelikle bir adet Personal Access Token’a ihtiyacımız var şu adres üzerinde PAT’ınızı oluşturabilirsiniz. https://github.com/settings/tokens

Önemli olan nokta ise paket’i oluşturabilmek için aşağıdaki izinleri vermeniz gerekmektedir.

NOT: PAT’ı ürettikten sonra 1 kere görüntüleyebilirsiniz, kopyaladığınızdan emin olduktan sonra devam edebilirsiniz.

sonrasında ise nuget listelermize kendi github’ımızı eklememiz gerekiyor.

Hepmizin bildiği gibi dotnet projelerimi EntityFrameworkCore veya Jwt gibi paketleri eklerken nuget package manager kullanıyoruz varsayılan olarak nuget package manager iki adet package source ile gelmektedir bunları görüntüleyebilmek için.

komutunu çalıştırdıktan sonra package source’larınız gelmektedir. Siz paketi indirebilmek adına ve ilgili source’a paket ekeyebilmek adına github üzerindeki package source’unuzu buraya eklememiz gerekmektedir.

Aşağıdaki kodu olduğu gibi github’ın dökümanlarından almaktayım açılayacağım dökümanı incelemek isterseniz : https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-nuget-registry

buradaki dotnet nuget add source -> nuget kaynaklarına yeni bir kaynak ekleyeceğimizi belirtiyoruz,

–username -> bu ifadeden sonraki USERNAME alanına kendi github kullanıcı adımızı eklemeliyiz.

–password -> bu alandan sonraki $ ile başlayan ve süslü parantezler ile açılıp kapanan alanın tamamına oluşturduğumuz pat’ı eklemeliyiz yani oluşturulan pat 12345 ise şöyle bir şey olmalı –password 12345

–store-password-in-clear-text alanı ise bu pat dosyasını olduğu gibi kaydetmesi için

–name -> bu ifadeden sonra gelen kısım ise nuget listesinde listelenirken gösterilecek olan isim varsayılan olarak github eklenmiş istediğniz ismi verebilirsiniz mygithub mygithubsource gibi gibi.

son olarak tırnak işaretleri içerisinde verilen alan ise github’ın package source’ına denk geliyor buradaki namespace alanına -> kullanıcı adı organizasyon adı olabilir ben kendi kullanıcı hesabımda saklayacağım için benimki şöyle olmalı

tamamdır ilgili alanları tamamladıktan sonra artık nuget source listenize eklenmiş olması gerekmekte yukarıda source’ları listelediğimiz komutu tekrar kullanarak eklenip eklenmediğini görebilirsiniz.

Nuget source’u ekledikten sonra paketimizi pushlamaya başlayalım.

buradaki komutu da çalıştırdıktan sonra Düzenlemeyi unutmayın =) paketiniz paylaşılabilmiş olacak gelin şimdi indirme işlemine bakalım.

Gördüğünüz gibi nuget package manager içerisinde arattığımızda benim paketim yayınlanmış bir halde gözüküyor

Artık kendi kodlarınızı diğer projelere eklerken kopyala yapıştır yapmak gerine github nuget repository üzerinde paket halinde ekleyip oradan paket halinde çekebilirsiniz.

Eğer hata ile karşılaşırsanız yorumlarda buluşalım, iyi çalışmalar dilerim.

erdincyasan Yazar:

0 0 votes
Değerlendirme
guest
0 Yorum
Inline Feedbacks
View all comments