Hızlı Başlangıç: dotnet CLI ile paket oluşturma ve yayımlama

Bu hızlı başlangıçta, .NET sınıf kitaplığından hızlı bir şekilde NuGet paketi oluşturma ve .NET komut satırı arabirimini veya dotnet CLI kullanarak bunu nuget.org yayımlama adımları gösterilmektedir.

Önkoşullar

Sınıf kitaplığı projesi oluşturma

Paketlemek istediğiniz kod için mevcut bir .NET Sınıf Kitaplığı projesini kullanabilir veya aşağıdaki gibi basit bir proje oluşturabilirsiniz:

  1. AppLogger adlı bir klasör oluşturun.
  2. Bir komut istemi açın ve AppLogger klasörüne geçin. Bu hızlı başlangıçtaki tüm dotnet CLI komutları varsayılan olarak geçerli klasörde çalıştırılır.
  3. Geçerli klasör adıyla bir proje oluşturan değerini girin dotnet new classlib.

Daha fazla bilgi için bkz . dotnet new.

Proje dosyasına paket meta verileri ekleme

Her NuGet paketi, paketin içeriğini ve bağımlılıklarını açıklayan bir bildirime sahiptir. Son pakette bildirim, proje dosyasına eklediğiniz NuGet meta veri özelliklerini kullanan bir .nuspec dosyasıdır.

.csproj, .fsproj veya .vbproj proje dosyasını açın ve mevcut <PropertyGroup> etiketin içine aşağıdaki özellikleri ekleyin. Ad ve şirket için kendi değerlerinizi kullanın ve paket tanımlayıcısını benzersiz bir değerle değiştirin.

<PackageId>Contoso.08.28.22.001.Test</PackageId>
<Version>1.0.0</Version>
<Authors>your_name</Authors>
<Company>your_company</Company>

Önemli

Paket tanımlayıcısı nuget.org ve diğer paket kaynakları arasında benzersiz olmalıdır. Yayımlama paketi genel olarak görünür hale getirir, bu nedenle örnek AppLogger kitaplığını veya başka bir test kitaplığını kullanıyorsanız veya Testiçeren Sample benzersiz bir ad kullanın.

NuGet meta veri özelliklerinde açıklanan isteğe bağlı özellikleri ekleyebilirsiniz.

Not

Genel tüketim için oluşturduğunuz paketler için tesise PackageTags özellikle dikkat edin. Etiketler, başkalarının paketinizi bulmasına ve ne yaptığını anlamasına yardımcı olur.

Pack komutunu çalıştırma

Projeden bir NuGet paketi veya .nupkg dosyası oluşturmak için, projeyi otomatik olarak da oluşturan dotnet pack komutunu çalıştırın.

dotnet pack

Çıkışta .nupkg dosyasının yolu gösterilir:

MSBuild version 17.3.0+92e077650 for .NET
  Determining projects to restore...
  Restored C:\Users\myname\source\repos\AppLogger\AppLogger.csproj (in 64 ms).
  AppLogger -> C:\Users\myname\source\repos\AppLogger\bin\Debug\net6.0\AppLogger.dll
  Successfully created package 'C:\Users\myname\source\repos\AppLogger\bin\Debug\Contoso.08.28.22.001.Test.1.0.0.nupkg'.

Derlemede paketi otomatik olarak oluşturma

komutunu her çalıştırdığınızda dotnet buildotomatik olarak çalıştırmak dotnet pack için içindeki proje dosyanıza <PropertyGroup>aşağıdaki satırı ekleyin:

    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>

Paketi yayımlama

.nupkg dosyanızı, nuget.org alınan bir API anahtarıyla dotnet nuget push komutunu kullanarak nuget.org yayımlayın.

Not

  • Nuget.org karşıya yüklenen tüm paketleri virüslere karşı tarar ve virüs bulursa paketleri reddeder. Nuget.org ayrıca mevcut tüm listelenen paketleri düzenli aralıklarla tarar.

  • nuget.org yayımladığınız paketler, listelerini kaldırmadığınız sürece diğer geliştiriciler tarafından genel olarak görülebilir. Paketleri özel olarak barındırmak için bkz . Kendi NuGet akışlarınızı barındırma.

API anahtarınızı alma

  1. nuget.org hesabınızda oturum açın veya henüz hesabınız yoksa bir hesap oluşturun.

  2. Sağ üst köşeden kullanıcı adınızı ve ardından API Anahtarları'nı seçin.

  3. Oluştur'u seçin ve anahtarınız için bir ad belirtin.

  4. Kapsamları Seç'in altında Gönder'i seçin.

  5. Paketleri>Seç Glob Deseni'nin altına * girin.

  6. Oluştur'u belirleyin.

  7. Yeni anahtarı kopyalamak için Kopyala'yı seçin.

    Kopyala bağlantısını içeren yeni API anahtarını gösteren ekran görüntüsü.

Önemli

  • API anahtarınızı her zaman gizli tutun. API anahtarı, herkesin sizin adınıza paketleri yönetmesine olanak tanıyan bir parola gibidir. YANLıŞLıKLA ortaya çıkarsa API anahtarınızı silin veya yeniden oluşturun.
  • Anahtarı daha sonra yeniden kopyalayamadığınızdan anahtarınızı güvenli bir konuma kaydedin. API anahtarı sayfasına dönerseniz, anahtarı kopyalamak için yeniden oluşturmanız gerekir. Paketleri artık göndermek istemiyorsanız API anahtarını da kaldırabilirsiniz.

Kapsam belirleme, farklı amaçlar için ayrı API anahtarları oluşturmanıza olanak tanır. Her anahtarın bir süre sonu zaman çerçevesi vardır ve anahtarın kapsamını belirli paketlere veya glob desenlerine göre ayarlayabilirsiniz. Ayrıca her anahtarın kapsamını belirli işlemlerin kapsamına alırsınız: Yeni paketler ve paket sürümleri gönderme, yalnızca yeni paket sürümleri gönderme veya listeden kaldırma.

Kapsam belirleme yoluyla, kuruluşunuz için paketleri yöneten farklı kişiler için API anahtarları oluşturabilir ve böylece yalnızca ihtiyaç duydukları izinlere sahip olursunuz.

Daha fazla bilgi için bkz . kapsamlı API anahtarları.

dotnet nuget push ile yayımlama

.nupkg dosyasını içeren klasörden aşağıdaki komutu çalıştırın. .nupkg dosya adınızı belirtin ve anahtar değerini API anahtarınızla değiştirin.

dotnet nuget push Contoso.08.28.22.001.Test.1.0.0.nupkg --api-key qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 --source https://api.nuget.org/v3/index.json

Çıktı, yayımlama işleminin sonuçlarını gösterir:

Pushing Contoso.08.28.22.001.Test.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
  PUT https://www.nuget.org/api/v2/package/
warn : All published packages should have license information specified. Learn more: https://aka.ms/nuget/authoring-best-practices#licensing.
  Created https://www.nuget.org/api/v2/package/ 1221ms
Your package was pushed.

Daha fazla bilgi için bkz . dotnet nuget push.

Not

Test paketinizin nuget.org canlı olmasını önlemek istiyorsanız adresinden nuget.org test sitesine https://int.nugettest.orggönderebilirsiniz. int.nugettest.org yüklenen paketlerin korunmayabileceğini unutmayın.

Yayımlama hataları

Komuttan gelen push hatalar genellikle sorunu gösterir. Örneğin, projenizdeki sürüm numarasını güncelleştirmeyi unutmuş olabilirsiniz, bu nedenle zaten var olan bir paketi yayımlamaya çalışıyorsunuz.

API anahtarınız geçersizse veya süresi dolmuşsa ya da konakta zaten var olan bir tanımlayıcıyı kullanarak bir paket yayımlamaya çalıştığınızda da hatalar görürsünüz. Örneğin, tanımlayıcının AppLogger-test nuget.org zaten var olduğunu varsayalım. Bu tanımlayıcıya sahip bir paket yayımlamaya çalışırsanız, push komut aşağıdaki hatayı verir:

Response status code does not indicate success: 403 (The specified API key is invalid,
has expired, or does not have permission to access the specified package.).

Bu hatayı alırsanız süresi dolmamış geçerli bir API anahtarı kullanıp kullanmadığınızı denetleyin. Bu durumda hata, konakta paket tanımlayıcısının zaten var olduğunu gösterir. Hatayı düzeltmek için paket tanımlayıcısını benzersiz olacak şekilde değiştirin, projeyi yeniden derleyin, .nupkg dosyasını yeniden oluşturun ve komutu yeniden deneyinpush.

Yayımlanan paketi yönetme

Paketiniz başarıyla yayımlandığında bir onay e-postası alırsınız. Yeni yayımladığınız paketi görmek için, nuget.org sağ üst köşeden kullanıcı adınızı ve ardından Paketleri Yönet'i seçin.

Not

Paketinizin dizine alınması ve başkalarının bulabileceği arama sonuçlarında görünmesi biraz zaman alabilir. Bu süre boyunca paketiniz Listelenmemiş Paketler altında görünür ve paket sayfası aşağıdaki iletiyi gösterir:

bir paketi nuget.org yüklediğinizde görüntülenen yayımlama iletisini gösteren ekran görüntüsü.

Şimdi diğer geliştiricilerin projelerinde kullanabileceği nuget.org için bir NuGet paketi yayımladınız.

Kullanışlı olmayan bir paket oluşturduysanız (örneğin, boş bir sınıf kitaplığıyla oluşturulmuş bu örnek paket) veya paketin görünür olmasını istemediğinize karar verirseniz, paketi arama sonuçlarından gizlemek için paketin listesini kaldırabilirsiniz:

  1. Paket, Paketleri Yönet sayfasındaki Yayımlanan Paketler'in altında göründükten sonra paket listesinin yanındaki kalem simgesini seçin.

    nuget.org bir paket listesi için Düzenle simgesini gösteren ekran görüntüsü.

  2. Sonraki sayfada Listele'yi seçin, Arama sonuçlarında listele onay kutusunun seçimini kaldırın ve ardından Kaydet'i seçin.

    nuget.org'da bir paketin Liste onay kutusunun temizlenmesini gösteren ekran görüntüsü.

Paket artık Paketleri Yönet'teki Listelenmemiş Paketler altında görünür ve artık arama sonuçlarında görünmez.

Not

Test paketinizin nuget.org canlı olmasını önlemek için konumundaki nuget.org test sitesine https://int.nugettest.orggönderebilirsiniz. int.nugettest.org yüklenen paketlerin korunmayabileceğini unutmayın.

tebrikler ilk NuGet paketinizi oluşturup yayımladınız!

Channel 9 ve YouTube'da daha fazla NuGet videosu bulun.

Sonraki adımlar

Dotnet CLI ile paket oluşturma hakkında daha fazla ayrıntıya bakın:

NuGet paketlerini oluşturma ve yayımlama hakkında daha fazla bilgi edinin: