Hızlı Başlangıç: Paket oluşturma ve yayımlama (dotnet CLI)

Bir .NET Sınıf Kitaplığı'NuGet paketi oluşturmak ve komut satırı arabirimini (CLI) kullanarak nuget.org'da yayımlamak basit dotnet bir işlemdir.

Önkoşullar

  1. CLI'.NET Core SDKiçeren .NET Core SDK'i yükleyin. 2017 Visual Studio itibaren dotnet CLI, .NET Core ile ilgili tüm iş yükleriyle otomatik olarak yüklenir.

  2. Henüz bir hesabınız nuget.org ücretsiz bir hesap için kaydolabilirsiniz. Yeni hesap oluşturmak bir onay e-postası gönderir. Paketi karşıya yükleymeden önce hesabı onaylamanız gerekir.

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

Paketi oluşturmak 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. adlı bir klasör AppLogger oluşturun.

  2. Bir komut istemi açın ve klasörüne AppLogger gidin.

  3. Proje dotnet new classlib için geçerli klasörün adını kullanan yazın.

    Bu, yeni projeyi oluşturur.

Proje dosyasına paket meta verileri ekleme

Her NuGet paketin içeriğini ve bağımlılıklarını açıklayan bir bildirime ihtiyacı vardır. Son pakette bildirim, proje dosyasına dahil NuGet meta veri özelliklerinden .nuspec oluşturulan bir dosyadır.

  1. Proje dosyanızı ( veya kullandığınız dile bağlı olarak) açın ve mevcut etiketin içine aşağıdaki minimum özellikleri ekleyin ve .csproj.fsproj değerleri uygun şekilde .vbproj<PropertyGroup> değiştirin:

    <PackageId>AppLogger</PackageId>
    <Version>1.0.0</Version>
    <Authors>your_name</Authors>
    <Company>your_company</Company>
    

    Önemli

    Pakete tüm konaklar veya nuget.org benzersiz bir tanımlayıcı verme. Bu izlenecek yol için, sonraki yayımlama adımı paketi genel olarak görünür hale gelir (ancak bunu herkesin kullanma ihtimali düşük olsa da) adına "Örnek" veya "Test" adını dahil etmek önerilir.

  2. Meta veri özellikleri hakkında açıklanan isteğe NuGet ekleyin.

    Not

    Genel tüketim için hazır paketler için PackageTags özelliğine özellikle dikkat edin çünkü etiketler başkalarının paketinizi bulmanıza ve ne yaptığını anlamanıza yardımcı olur.

Pack komutunu çalıştırın

Projeden bir NuGet paketi (dosya) oluşturmak için, projeyi otomatik olarak .nupkgdotnet pack da derlemek için komutunu çalıştırın:

# Uses the project file in the current folder by default
dotnet pack

Çıktı, dosyanın yolunu .nupkg gösterir:

Microsoft (R) Build Engine version 15.5.180.51428 for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 29.91 ms for D:\proj\AppLoggerNet\AppLogger\AppLogger.csproj.
  AppLogger -> D:\proj\AppLoggerNet\AppLogger\bin\Debug\netstandard2.0\AppLogger.dll
  Successfully created package 'D:\proj\AppLoggerNet\AppLogger\bin\Debug\AppLogger.1.0.0.nupkg'.

Derlemede otomatik olarak paket oluşturma

'yi dotnet pack çalıştırarak otomatik olarak dotnet build çalıştırmak için içindeki proje dosyanıza aşağıdaki satırı <PropertyGroup> ekleyin:

<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

Paketi yayımlama

Bir dosyanız olduktan sonra, komutuyla nuget.org api anahtarıyla birlikte bu .nupkgdotnet nuget push dosyayı nuget.org.

Not

Virüs taraması:Virüs taraması: Nuget.org yüklenen tüm paketler virüs taramasıyla taranır ve herhangi bir virüs bulunursa reddedilir. Listede listelenen tüm nuget.org düzenli aralıklarla da taranır.

Nuget.org yayımlanan paketler, siz listelerini geri alamayacağınız sürece diğer geliştiricilere de genel olarak görünür. Paketleri özel olarak barındırmak için bkz. Paketleri barındırma.

API anahtarınızı edinme

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

    Hesap oluşturma hakkında daha fazla bilgi için bkz. Bireysel hesaplar.

  2. Kullanıcı adını seçin (sağ üst köşede) ve ardından API Anahtarları'ı seçin.

  3. Oluştur'ıseçin, anahtarınız için bir ad girin, Kapsamları Seç Push seçeneğini seçin. Globdeseni için * girin ve Oluştur'a basın. (Kapsamlar hakkında daha fazla bilgi için aşağıya bakın.)

  4. Anahtar oluşturulduktan sonra Kopyala'ya seçerek CLI'da ihtiyacınız olan erişim anahtarını alın:

    API anahtarını panoya kopyalama

Uyarı

API anahtarınızı her zaman gizli tutma! API anahtarınızı herkesin sizin adınıza paketleri yönetmesini sağlayan bir parola olarak davranma. YANLıŞLıKLA ortaya çıkarsa API anahtarınızı silmeniz veya yeniden oluşturmanız gerekir.

Önemli

Anahtarı daha sonra yeniden kopyalayıp kopyalayamazsınız, çünkü anahtarınızı güvenli bir konuma kaydedin. API anahtarı sayfasına geri dönersiniz, kopyalamak için anahtarı yeniden oluşturmanız gerekir. Artık paketleri itmek istemiyorsanız API anahtarını da kaldırabilirsiniz.

Bu sayede farklı amaçlar için ayrı API anahtarları oluşturabilirsiniz. Her anahtarın süre sonu zaman çerçevesi vardır ve kapsamı belirli paketler (veya glob desenleri) olabilir. Her anahtarın kapsamı da belirli işlemlere göredir: yeni paketleri ve güncelleştirmeleri, yalnızca güncelleştirmeleri itme veya listeden. Bu nedenle, yalnızca ihtiyaçları olan izinlere sahip olacak şekilde, şifreleme aracılığıyla, kuruluş için paketleri yöneten farklı kişiler için API anahtarları oluşturabilirsiniz. Daha fazla bilgi için bkz. kapsamlı API anahtarları.

dotnet nuget push ile yayımlama

  1. dosyasını içeren klasöre .nupkg gidin.

  2. Paket adını (benzersiz paket kimliği) belirterek ve anahtar değerini API anahtarınız ile değiştirerek aşağıdaki komutu çalıştırın:

    dotnet nuget push AppLogger.1.0.0.nupkg --api-key qz2jga8pl3dvn2akksyquwcs9ygggg4exypy3bhxy6w6x6 --source https://api.nuget.org/v3/index.json
    
  3. dotnet yayımlama işleminin sonuçlarını görüntüler:

    info : Pushing AppLogger.1.0.0.nupkg to 'https://www.nuget.org/api/v2/package'...
    info :   PUT https://www.nuget.org/api/v2/package/
    info :   Created https://www.nuget.org/api/v2/package/ 12620ms
    info : Your package was pushed.
    

Bkz. dotnet nuget push.

Yayımlama hataları

Komutun push hataları genellikle sorunu gösterir. Örneğin, projenizin sürüm numarasını güncelleştirmeyi unuttuysanız ve bu nedenle zaten var olan bir paketi yayımlamaya çalışıyor olabilirsiniz.

Ayrıca, konakta zaten var olan bir tanımlayıcıyı kullanarak paket yayımlamaya çalışırken hatalar da görüyorsunuz. Örneğin, "AppLogger" adı zaten var. Böyle bir durumda, push komutu 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.).

Yeni oluşturduğunuz geçerli bir API anahtarı kullanıyorsanız, bu ileti hatanın "izin" kısmından tamamen net olmayan bir adlandırma çakışması olduğunu gösterir. Paket tanımlayıcısını değiştirme, projeyi yeniden oluşturma, .nupkg dosyayı yeniden oluşturma ve komutu yeniden push deneme.

Yayımlanan paketi yönetme

Nuget.org profilinden Paketleri Yönet'i seçerek yeni yayımladığınızı seçin. Ayrıca bir onay e-postası da alırsınız. Paketinizin dizine dahil olması ve arama sonuçlarında başkalarının bularak görünmesi biraz zaman alsa da unutmayın. Bu süre boyunca paket sayfanız aşağıdaki iletiyi gösterir:

Bu paket henüz dizine dahillanmadı. Dizin oluşturma tamamlandıktan sonra arama sonuçlarında görünür ve yükleme/geri yükleme için kullanılabilir.

Hepsi bu! Diğer geliştiricilerin kendi projelerinde NuGet için nuget.org paketinizi yayımladınız.

Bu kılavuzda gerçekten yararlı olmayan bir paket (örneğin, boş bir sınıf kitaplığıyla oluşturulmuş bir paket) oluşturduysanız, paketi arama sonuçlarından gizlemek için paketinlistesini geri alasanız:

  1. Bu nuget.org kullanıcı adını seçin (sayfanın sağ üst kısmında) ve ardından Paketleri Yönet'i seçin.

  2. Yayımlandı altında listeden silmek istediğiniz paketi bulun ve sağ üst köşesindeki çöp kutusu simgesini seçin:

    Nuget.org'de bir paket listesi için gösterilen çöp kutusu simgesi

  3. Sonraki sayfada, arama sonuçlarında Liste (paket-adı) etiketli kutuyu temizleyin ve Kaydet'i seçin:

    Nuget.org'da bir paket için Liste onay kutusunu temizleme

Channel 9 NuGet YouTube'da daha fazla video bulabilirsiniz.

Sonraki adımlar

Tebrikler, ilk NuGet oluşturabilirsiniz!

Daha fazla NuGet için aşağıdaki bağlantıları seçin.