Projeniz için NuGet paketlerini bulma ve değerlendirme

Bir .NET projesi başlattığınızda veya uygulamanızda veya hizmetinizde işlevsel bir gereksinim tanımladığınızda, kendi paketlerinizi oluşturma konusunda zaman ve sorundan tasarruf etmek için genellikle mevcut NuGet paketlerini yükleyebilirsiniz. Mevcut paketler nuget.org genel koleksiyonundan veya kuruluşunuzun veya başka bir tarafın sağladığı özel kaynaklardan gelebilir.

Paketleri bulma

Paketleri doğrudan adresinden https://nuget.org/packagesveya Visual Studio Paket Yöneticisi kullanıcı arabiriminden veya nuget.org kaynak olarak Paket Yöneticisi Konsolu'ndan bulabilirsiniz. nuget.org tüm paketler düzenli olarak virüs taramasına alınıyor.

nuget.org/packages ilk sırada tüm .NET projelerinde en popüler paketlerin yer aldığı NuGet paketlerinin listesini görürsünüz. Bu paketlerden bazıları projeleriniz için yararlı olabilir.

Screenshot that shows the default view of nuget.org/packages with the most popular packages at the top.

Paket aramak için, sayfanın üst kısmındaki Arama kutusuna paket adını veya arama terimlerini girin. Aramanızı filtrelemek için gelişmiş arama söz dizimini kullanabilirsiniz.

Gelişmiş filtreleme ve sıralama

nuget.org/packages gelişmiş filtreleme ve sıralama seçeneklerini kullanarak arama sonuçlarınızı daraltabilirsiniz.

Screenshot that shows the filtering and sorting options on nuget.org.

Belirli .NET çerçevelerini hedefleyen paketleri göstermek için Çerçeveler filtrelerini kullanın (Daha fazla bilgi edinmek için bkz. Hedef Çerçeveler):

  • .NET framework oluşturma onay kutularından birinin seçilmesi, arama sonuçlarını bu nesildeki tek tek Hedef Çerçevelerden herhangi biriyle uyumlu paketlere göre filtrelemektedir. Örneğin, seçildiğinde .NET aracılığıyla net8.0da dahil olmak üzere net5.0 modern .NET çerçevelerinden herhangi biriyle uyumlu paketler döndürülecektir.

    Screenshot that shows the Framework filters on nuget.org.

  • Sağ taraftaki oklarla bu çerçeve nesillerinden birinin genişletilmesi, sonuçlarınızı filtreleyebileceğiniz tek tek Hedef Çerçeve Takma Adlarını (TFM' ler) gösterir. Örneğin, seçildiğinde net5.0 '.NET 5.0' çerçevesiyle uyumlu paketler döndürülecektir.

  • Varsayılan olarak paketler, genişletilmiş hesaplanan uyumlu çerçeveler listesine göre filtrelenir. Paketleri yalnızca açıkça hedefledikleri varlık çerçevelerine göre filtrelemek istiyorsanız Uyumlu çerçeveleri dahil et onay kutusunun seçimini kaldırın.

  • Birden çok çerçeve filtresini bir araya getirdiğinizde, tüm seçili filtrelerinizle eşleşen arama sonuçları (örneğin, seçimlerinizin kesişiminde kalan paketler) gösterilir. Örneğin ve birlikte seçildiğinde netcoreapp3.1 hem '.NET Core 3.1' hem de '.NET Framework 4.5' hedeflerini hedefleyen paketler net45 gösterilir. .NET Core Çerçeve oluşturma onay kutusunu ve net45 onay kutusunu birlikte seçtiğinizde '.NET Framework 4.5' hedefini ve '.NET Core' TFM'lerinden en az birini (netcoreapp1.0aracılığıylanetcoreapp3.1) hedefleyen paketler döndürülecektir.

    • Alternatif olarak, çerçeve filtrelerinden herhangi biriyle eşleşen paketleri görmek istiyorsanız, Çerçeve Filtre Modu'nda Herhangi bir radyo düğmesini seçin. Şimdi ve net5.0 seçildiğinde netcoreapp3.1 '.NET Core 3.1' veya '.NET 5.0' hedefli paketler gösterilir. netcoreapp3.1 Onay kutusunu ve .NET çerçeve oluşturma onay kutusunu birlikte seçtiğinizde '.NET Core 3.1' veya ''lerden herhangi birini hedefleyen paketler döndürülecektir. NET' TFM'leri (net5.0 ile).net8.0
  • Paketin desteklenen çerçevelerini ve projenizle uyumluluğunu değerlendirme hakkında daha fazla bilgiyi burada bulabilirsiniz.

Belirli bir türdeki paketleri göstermek için Paket türü filtresini kullanın:

Varsayılan olarak, NuGet yayın öncesi ve beta sürümleri de dahil olmak üzere paketlerin tüm sürümlerini listeler. Seçenekler bölümünde, yalnızca kararlı, yayımlanmış paket sürümlerini listelemek için Ön sürümü ekle onay kutusunun seçimini kaldırın.

Değişiklikleri uygulamak için Uygula'yı seçin. Varsayılan değerlere dönmek için Sıfırla'yı seçin.

Listeyi birkaç ölçüte göre sıralamak için sayfanın sağ üst kısmındaki Sıralama ölçütü açılan listesini kullanın:

  • İlgi varsayılan değerdir ve sonuçları iç puanlama algoritmasına göre sıralar.
  • İndirmeler , arama sonuçlarını toplam indirme sayısına göre azalan düzende sıralar.
  • Son güncelleştirmeler , arama sonuçlarını en son paket sürümü oluşturma tarihine göre azalan kronolojik düzende sıralar.

Söz dizimi arama

nuget.org,NuGet CLI'dan ve Visual Studio'daki paket arama sorgularının tümü aynı söz dizimini kullanır. Azure Artifacts veya GitHub Paket Deposu gibi diğer paket kaynakları farklı söz dizimi kullanabilir veya gelişmiş filtrelemeyi desteklemeyebilir.

  • söz dizimini <property>:<term>kullanarak , , versionpackageid, title, tags, author, , summarydescription, veya owner paketinde idarama yapabilirsiniz.

  • Arama anahtar sözcükler ve açıklamalar için geçerlidir ve büyük/küçük harfe duyarlı değildir. Örneğin, aşağıdaki dizelerin tümü dize nuget.coreiçin özelliğinde arama id yapar:

    id:NuGet.Core
    ID:nuget.core
    Id:NUGET.CORE

  • Özelliğinde id aramalar alt dizeleri eşleştirirken packageidowner ve tam büyük/küçük harfe duyarlı olmayan eşleşmeler kullanır. Örneğin:

    PackageId:jquery tam paket kimliğini jqueryarar.
    Id:jquery dizesini jqueryiçeren tüm paket kimliklerini arar.

  • Aynı anda birden çok değer veya özellik arayabilirsiniz. Örneğin:

    id:jquery id:ui özelliğinde id birden çok terim arar.
    id:jquery tags:validation birden çok özellik arar.

  • Arama, desteklenmeyen özellikleri yoksayar, bu nedenle invalid:jquery ui arama ile uiaynıdır ve invalid:jquery tüm paketleri döndürür.

Desteklenen çerçeveleri belirleme

NuGet bir paketi projeye yükler ancak paketin desteklenen .NET çerçeveleri projenin hedef çerçevelerini içerir. Paket uyumlu değilse NuGet bir hata döndürür.

Bir paketin desteklediği çerçeveleri belirlemenin birkaç yolu vardır:

  • Arama sayfasında, paketin desteklenen çerçeveleri paket kimliğinin altında rozetler olarak görünür. Bu rozetler .NET, .NET Core, .NET Standard ve .NET Framework nesillerinden desteklenen en düşük çerçeve sürümlerini gösterir. Paket, gösterilen rozet sürümüne eşit veya ondan daha yüksek olan tüm çerçeve sürümleriyle uyumlu olacaktır.

    'Koyu mavi' rozetler açıkça hedeflenen çerçeveleri, 'açık mavi' rozetleri ise hesaplanan uyumlu çerçeveleri temsil eder.

    Bir rozete tıklanması, sizi nuget.org paketin ayrıntılar sayfasına yönlendirir. Paketin sayfasındaki Çerçeveler sekmesinde desteklenen çerçevelerin tam listesi gösterilir.

    Screenshot of the Framework badges on nuget.org's search page.

  • Paketin nuget.org sayfasında, desteklenen çerçeveler paket kimliğinin altında ve Çerçeveler sekmesinde görünür, ancak tüm paketler desteklenen çerçeveleri göstermez.

    Screenshot of the Frameworks UI and tab on the package page at nuget.org.

  • Hakkında altında Paketi indir'i seçerek paketi el ile indirin. İndirilen paketin .nupkgolan dosya uzantısını .zip olarak değiştirin, .zip klasörünü açın ve lib klasörünü inceleyin. Desteklenen her çerçeve için her birinin adı bir hedef çerçeve adı (TFM) olan alt klasörler vardır. Daha fazla bilgi için bkz . Hedef Çerçeveler. Lib altında alt klasör yoksa ve yalnızca tek bir DLL varsa, uyumluluğunu bulmak için paketi yüklemeyi deneyin.

  • Visual Studio Paket Yöneticisi Konsolu'nda Install-Package kullanarak paketi bir projeye yüklemeyi deneyin. Paket uyumsuzsa, konsol çıkışı paketin desteklenen çerçevelerini gösterir.

Yayın öncesi paketleri

Birçok paket yazarı, en son düzeltmeleri geliştirmeye ve geri bildirim aramaya devam ettikçe önizleme ve beta sürümleri sağlar. varsayılan olarak, nuget.org paket listesinde ve arama sonuçlarında yayın öncesi paketleri gösterir.

Yalnızca kararlı sürümleri listelemek ve aramak için:

  • nuget.org gelişmiş arama panelinde Ön sürümü ekle onay kutusunun seçimini kaldırın.
  • Visual Studio NuGet Paket Yöneticisi kullanıcı arabiriminde, Ara kutusunun yanındaki Ön sürümü ekle onay kutusunun seçimini kaldırın.

Visual Studio Paket Yöneticisi Konsolu, NuGet CLI ve dotnet CLI araçları varsayılan olarak yayın öncesi sürümleri içermez. Yayın öncesi sürümleri dahil etmek için:

  • Paket Yöneticisi Konsolu'nda anahtarı , , Install-PackageGet-Package, Sync-Packageve Update-Package komutlarıyla Find-Packagekullanın-IncludePrerelease. Daha fazla bilgi için bkz . PowerShell Başvurusu.

  • NuGet CLI için anahtarı , , deleteupdateve mirror komutlarıyla installkullanın-prerelease. Daha fazla bilgi için bkz . NuGet CLI başvurusu.

  • dotnet CLI için bağımsız değişkeniyle -v yayın öncesi bir sürüm belirtin. Daha fazla bilgi için dotnet add package başvurusuna bakın.

Yerel C++ paketleri

Visual Studio C++ projeleri yerel C++ NuGet paketlerini kullanabilir. Bu paketlerin yüklenmesi NuGet Paketlerini Yönet bağlam menüsü komutunu etkinleştirir, hedef çerçeveyi native kullanıma sunar ve MSBuild tümleştirmesi sağlar.

nuget.org/packages yerel paketleri bulmak için kullanarak tag:nativearama yapmak için. Bu tür paketler genellikle NuGet'in paketleri eklerken otomatik olarak içeri aktardığı .targets ve .props dosyalarını sağlar.

Paketleri değerlendirme

Bir paketin yararlılığını değerlendirmenin en iyi yolu, bunu denemektir. Kullanırken bir pakete bağımlılık alırsınız, bu nedenle paketin sağlam ve güvenilir olduğundan emin olmanız gerekir. Ancak, bir paketi yüklemek ve doğrudan sınamak zaman alır. Nuget.org/packages sayfasındaki bilgileri kullanarak paketin kalitesi hakkında çok şey öğrenebilirsiniz.

  • Paket listesindeki paket kimliğinin yanındaki Önek Ayrılmış onay işareti ve paket sayfası, paket sahiplerine ayrılmış paket kimliği ön eki uygulanmış ve verilmiştir. Kimlik ön eki rezervasyon ölçütlerini karşılamak için paket sahiplerinin kendilerini ve paketlerini açıkça tanımlamaları gerekir.

    Screenshot that shows Prefix Reserved on a package's page.

  • Paket sayfasının sağ sütunundaki indirmeler Toplam, Geçerli sürüm ve Günlük ortalama indirmeleri gösterir. Çok sayıda, paketin birçok geliştirici arasında kendini kanıtladığını gösterir.

    Screenshot that shows Download statistics on a package's page.

    Sürüm numarasına göre son altı haftalık paket indirmelerini gösteren bir sayfa görmek için İndirmeler'in yanındaki Tam istatistikler'i seçin. Daha fazla geliştiricinin kullandığı sürümler genellikle daha iyi seçeneklerdir.

  • Paket sayfasındaki Kullanılanlar sekmesi, bu pakete bağlı en popüler beş nuget.org paketini ve GitHub depolarını gösterir. Bu pakete bağlı paketler ve depolar bağımlı olarak adlandırılır. Bağımlı paketler ve depolar, bu pakete güvenmeyi ve bu pakete bağımlı olmayı seçtiği için bu paketin desteklenmesi olarak görülebilir.

    Screenshot that shows the Used By list.

    Bağımlı bir paketin en son kararlı sürümü , bu paketin herhangi bir sürümüne bağlı olmalıdır. Bu tanım, listelenen bağımlı paketlerin paket yazarlarının pakete güvenme kararlarının güncel bir yansıması olmasını ve pakete bağımlı olmasını sağlar. Bağımlılar listesi, henüz tam onay olarak kabul edilmediğinden, ön sürüm bağımlılarını göstermez. Aşağıdaki örneklerde hangi paketlerin bağımlı olarak gösterildiği gösterilmektedir:

    Bağımlı paket sürümü Bağımlı paket bağımlı olarak mı listeleniyor?
    v1.0.0
    v1.1.0 (en son kararlı) bu pakete bağlıdır
    v1.2.0-preview
    DOĞRU, en son kararlı sürüm bu pakete bağlıdır
    v1.0.0 bu pakete bağlıdır
    v1.1.0 (en son kararlı)
    v1.2.0-preview
    YANLIŞ, en son kararlı sürüm bu pakete bağlı değildir
    v1.0.0 bu pakete bağlıdır
    v1.1.0 (en son kararlı)
    v1.2.0-preview bu pakete bağlıdır
    YANLIŞ, en son kararlı sürüm bu pakete bağlı değildir

    GitHub deposunun yıldız sayısı, GitHub kullanıcıları ile popülerliğini gösterir. GitHub yıldızı ve depo derecelendirme sistemi hakkında daha fazla bilgi için bkz . Yıldızlar hakkında.

    Not

    Tarafından Kullanılan bölümü, insan incelemesi olmadan ve yalnızca bilgilendirme amacıyla düzenli aralıklarla otomatik olarak oluşturulur.

  • Paket sayfasındaki Sürümler sekmesinde Sürümler, İndirmeler, Son Güncelleştirme tarihleri ve paket sürümlerinin ciddi güvenlik açıkları gösterilir. Yüklediğiniz sürümde yüksek önem derecesinde güvenlik açıkları olmamalıdır. Bakımlı bir pakette son güncelleştirmeler ve uzun bir sürüm geçmişi bulunur. İhmal edilen paketlerde birkaç ve uzun süre önce yapılan güncelleştirmeler vardır.

    Screenshot that shows the Versions list.

Paket sayfasının sağ sütununda başka bilgilendirici bağlantılar vardır:

Screenshot that shows the right column of the package page.

  • Yazarın hangi destek seçeneklerini sağladığını görmek için Varsa Proje web sitesi'ni seçin. Ayrılmış siteye sahip bir proje genel olarak iyi desteklenir.

  • Paket için Git kaynak kodu deposuna gitmek için Kaynak depo'yu seçin. Kullanıcıların hata düzeltmelerine ve özellik iyileştirmelerine doğrudan katkıda bulunabilmesi için birçok yazar paketlerini açık kaynak depolarında tutar. Paketin katkı geçmişi, etkin olarak kaç geliştiricinin dahil olduğunu gösteren iyi bir göstergedir.

  • Paketin MIT veya diğer lisansını görmek için lisans türü> lisansı'nı seçin<. Bir paket lisans koşullarını belirtmezse paket sahibine başvurun.

  • Yayımladıkları diğer paketleri görmek için Sahipler'in altındaki paket sahiplerinden herhangi birini seçin. Birden çok paketi olan sahiplerin çalışmalarını desteklemeye devam etme olasılığı daha yüksektir. Doğrudan paket geliştiricilerine ulaşmak için Sahipler'in yanındaki Sahiplerle iletişime geçin'i seçin.

Lisans bilgilerini alma

Bazı NuGet istemcileri ve NuGet akışları lisans bilgilerini ortaya çıkaramayabilir. Bu gibi durumlarda geriye dönük uyumluluğu korumak için lisans URL'si, lisans bilgilerinin nasıl alınması konusunda bu belgeye işaret etti.

Bir paketin lisans URL'sini seçmek sizi bu sayfaya getiriyorsa, paketin bir lisans dosyası içerdiği anlamına gelir ve:

  • Lisans bilgilerini nasıl yorumlayıp istemciye aktarabileceğinizi bilmediğiniz bir akışa bağlısınız veya
  • Akışın sağladığı lisans bilgilerini nasıl yorumlayıp okuyabileceğinizi bilmediğiniz bir istemci kullanıyorsunuz veya
  • Bu senaryoların her ikisinin birleşimi.

Paketin içindeki lisans dosyasındaki bilgileri okumak için:

  1. Paketi el ile indirin ve içeriğini bir klasöre açın.
  2. Klasörün kökündeki .nuspec dosyasını açın.
  3. <license> etiketini inceleyin, örneğin<license type="file">license\license.txt</license>. Örnek etiket, lisans dosyasının license.txt olarak adlandırıldığını ve license adlı bir alt klasörün içinde olduğunu belirtir.
  4. Belirtilen konuma gidin ve belirtilen dosyayı açın.

.nuspec'te lisansı ayarlamaya eşdeğer MSBuild hakkında bilgi için bkz. Lisans ifadesini veya lisans dosyasını paketleme.

Sonraki adımlar