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
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.
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:
adlı bir klasör
AppLoggeroluşturun.Bir komut istemi açın ve klasörüne
AppLoggergidin.Proje
dotnet new classlibiç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.
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.fsprojdeğ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.
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
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.
Kullanıcı adını seçin (sağ üst köşede) ve ardından API Anahtarları'ı seçin.
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.)
Anahtar oluşturulduktan sonra Kopyala'ya seçerek CLI'da ihtiyacınız olan erişim anahtarını alın:

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
dosyasını içeren klasöre
.nupkggidin.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.jsondotnet 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:

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:
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.
Yayımlandı altında listeden silmek istediğiniz paketi bulun ve sağ üst köşesindeki çöp kutusu simgesini seçin:

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

İlgili video
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.