.Net Framework için Local NugetPackage

Orcun Ten - 2023/08/02

Nuget Paket Nedir ve Ne işe Yarar?

NuGet Package, Microsoft tarafından geliştirilen ve .NET platformunda kullanılan açık kaynak paket yöneticisidir. NuGet paketleri, .NET projelerine kolayca ekstra fonksiyonlar, kütüphaneler, araçlar ve bileşenler eklemek için kullanılır. Bu paketler, projelerinizin gereksinim duyduğu harici kaynak kodlarını ve bağımlılıklarını içerir.

  1. Kütüphaneler ve Framework'ler: Projelerinizde popüler kütüphaneleri ve framework'leri (örneğin Entity Framework, Newtonsoft.Json vb.) kullanmak için NuGet paketlerini projenize ekleyebilirsiniz.

  2. Ek Araçlar ve Eklentiler: Projenize özel ihtiyaçlarınızı karşılamak için üçüncü taraf araçları ve eklentileri kolayca eklemek için NuGet paketlerini kullanabilirsiniz.

  3. Test ve Geliştirme Araçları: Testlerinizi veya geliştirme sürecinizi kolaylaştırmak için NuGet paketlerini kullanabilirsiniz.

  4. Bağımlılık Yönetimi: Projelerinizde kullandığınız harici kütüphanelerin ve bileşenlerin sürümlerini ve bağımlılıklarını kolayca yönetmek için NuGet paketlerini kullanabilirsiniz.

  5. NuGet paketleri, projenizi oluşturduğunuzda veya yönettiğinizde, projenizin .csproj dosyasına bağımlılıkları ve NuGet paketlerini içeren referansları ekler. Ayrıca, bağımlılıkların otomatik olarak çözülmesini ve güncellenmesini de sağlar.

  6. NuGet, .NET projelerini geliştirmeyi, bakımını yapmayı ve dış kaynakları projelere dahil etmeyi daha kolay ve daha yönetilebilir hale getirir. Projelerin ihtiyaçlarına göre gereksinimleri hızla karşılayarak geliştirme sürecini hızlandırır ve projelerin daha sağlam ve esnek olmasına yardımcı olur.

Neden Local NugetPackage’a İhtiyaç Duyarız?

Kurum içerisinde yazılmış olan ve modüler hale gelmiş kodların (Helper, Business, Extentions vb.) tekrar tekrar yazılmasını engellemek ve kurum içerisindeki kod bütünlüğünü sağlamak için böyle bir yapı oluşturulabilir. Kod clone alma veya Git üzerinde ortak repo açma gibi yöntemler de tercih edilebilir lakin clone işlemlerinde başka bir geliştirici diğer geliştiricinin kod üzerindeki yeni düzeltmelerini bilemez ve kod yönetimi karmaşık hale gelebilir. Nuget Package kullanıldığında bağımlılıkları yönetmek daha kolay olacaktır.

Proje Aşamasında İhtiyaç Duyulun Program ve Araçlar

Nuget paketlerini dağıtmak veya oluşturmak için gerekli olan exe nin indirme linki aşağıdaki gibidir.

Uygulama Adımları

Nuget Paket Oluşturma Tool’unun Kurulması

  1. nuget.exe indirilir (https://www.nuget.org/downloads)

  2. İndirilen nuget.exe uygun bir pathe konulur. Örn: C:/Program Files/nuget/nuget.exe

  3. nuget.exe nin path’i environment variables da PATH değişkenine set edilir ki cmd üzerinde nuget komutlarını görsün. 4.2-) Nuget Package Oluşturacağımız Class Library Projesinin Oluşturulması 1.Adım : Solution’da Class Library(.Net Freamwork) oluşturun.

Nuget Package Oluşturacağımız Class Library Projesinin Oluşturulması

  1. Solution’da Class Library(.Net Freamwork) oluşturun.

  1. Projede kullanılacak sınıfı oluşturun

Örnek Olması açısından Deneme Class oluşturdum.

  1. Sınıf içerisindeki methodları tanımlayın

  1. Projeye Sağ tuş/Properties/Application/Assembly Information’da ki bilgileri doldurun

  1. Projeyi Release modda build edin ve build klasörüne gidin örn: bin/release

Oluşan dll leri “lib/net472/” dizini oluşturarak altına atın. Net472, .Net 4.7.2 Freamwork’üne bağımlı çalıştığını temsil ediyor.

  1. <ProjeSolutionAdı>.nuspec file oluşturun. Ben Solution dizininde oluşturdum.

Oluşturan dosyanın içerisine aşağıdaki xml kodları yazın ve projenin özelliklerine göre editleyin.

<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
  <metadata>
    <id>Bto.NugetDeneme</id>
    <version>2.0.0</version>
    <authors>OrcunTEN</authors>
    <owners>OrcunTEN</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>Deneme</description>
    <releaseNotes>Ilk Denemem</releaseNotes>
	<dependencies>
		<group targetFramework=".NETFramework4.7.2">
	    </group>
	</dependencies>
	</metadata>
</package>

Eğer oluşturduğunuz Library’nin bağımlılıkları varsa bunu Dependencies Tag’ının altına yazmanız gerekiyor. Örneğin version 2.0.0’ın kurulması için version 1.0.0’ın kullanılıyor gerekiyorsa bağımlılı sağlamak için aşağıdaki örnek kodu inceleyebilirsiniz.

<dependencies>
    <group targetFramework="TargetFramework">
      <dependency id=" Bto.NugetDeneme " version="1.0.0" />
    </group>
</dependencies>
  1. *.nuspect dosyasının olduğu path’de komut satırını açın ve aşağıdaki komudu yapıştırın.

nuget pack Bto.NugetDeneme.nuspec
  1. Bto.NugetDeneme.2.0.0.nupkg dosyası oluşacaktır dilerseniz bunu kurumda herkesin ulaşabileceği bir ShareFolder içerisine atabilirsiniz.

  1. Visual STD Nuget Package Management üzerinde oluşturduğumuz Nuget Paketi görmek için tanımlama yapmamız gerekiyor. Bunun için oluşturduğumuz Nuget Package’ı ekleyeceğimiz başka bir projeye giderek sağ tuş-> Manage NuGet Packages diyoruz.

Package Source kısmındaki options alanından, (+) ekleme butonuna basıyoruz. Nuget Package’larımızın olduğu path’i tanımlıyoruz.

Package Source kısmından tanımladığımız source’u seçiyoruz ve source içerisindeki paketlerimiz listelendi. Nuget Package’ı projeye ekliyoruz.

  1. Artık proje içerisinde DenemeClass ve içerisindeki Methodları rahatlıkla kullanabilirsiniz.

Last updated