hızlı başlangıç: Visual Studio kullanarak NuGet paketi oluşturma ve yayımlama (.NET Standard yalnızca Windows)
Windows üzerinde Visual Studio ' de bir .NET Standard sınıf kitaplığından NuGet paketi oluşturmak ve ardından clı aracını kullanarak nuget.org 'de yayımlamak basit bir işlemdir.
Not
Mac için Visual Studio kullanıyorsanız, NuGet paketi oluşturma konusunda bu bilgilere bakın veya dotnet clı araçlarınıkullanın.
Önkoşullar
.net Core ile ilgili iş yüküyle visualstudio.com 'tan herhangi bir Visual Studio 2019 sürümünü yükleyin.
Zaten yüklü değilse, CLI 'yı yükleme
dotnet.clı için
dotnetVisual Studio 2017 ' den başlayarak,dotnetclı .net Core ile ilgili iş yükleriyle otomatik olarak yüklenir. Aksi takdirde, CLI 'yı almak için .NET Core SDK ' yi yüklemelisiniz .dotnetCLI,dotnetkullanan .NET Standard projeleri için gereklidir (SDK özniteliği). bu makalede kullanılan Visual Studio 2017 ve üzeri bir varsayılan .NET Standard sınıf kitaplığı şablonu, SDK özniteliğini kullanır.Önemli
SDK olmayan bir proje ile çalışıyorsanız, bunun yerine paketi oluşturmak ve yayımlamak için .NET Framework paketi oluşturma ve yayımlama (Visual Studio) konusundaki yordamları izleyin. Bu makalede,
dotnetCLI önerilir. clı kullanarak herhangi bir NuGet paketini yayımlayabilseniz denuget.exe, bu makaledeki adımların bazıları SDK stilindeki projelere ve dotnet clı 'ya özeldir. nuget.exe CLı, SDK olmayan-stil projeleri için kullanılır (genellikle .NET Framework).Henüz bir hesabınız yoksa NuGet.org üzerinde ücretsiz bir hesaba kaydolun . Yeni hesap oluşturma onay e-postası gönderir. Bir paketi karşıya yükleyebilmek için önce hesabı onaylamanız gerekir.
Sınıf kitaplığı projesi oluşturma
Paketlemek istediğiniz kod için mevcut bir .NET Standard Sınıf Kitaplığı projesini kullanabilir veya basit bir tane oluşturabilirsiniz:
Visual Studio ' de dosya yeni > Project' i seçin, > düğümünü genişletin, "sınıf kitaplığı (.NET Standard)" şablonunu seçin, projeyi appgünlükçü olarak adlandırın ve >' a tıklayın.
İpucu
aksi takdirde seçim yapmak için bir nedeniniz yoksa, en geniş kapsamlı proje yelpazğuyla uyumluluk sağladığından NuGet paketleri için tercih edilen hedef .NET Standard.
Ortaya çıkan proje dosyasına sağ tıklayın ve projenin düzgün oluşturulduğundan emin olmak için Oluştur ' u seçin. DLL, hata ayıklama klasöründe bulunur (veya bunun yerine bu yapılandırmayı oluşturursanız sürüm).
gerçek bir NuGet paketi içinde, diğerlerinin uygulama derleyebileceği birçok yararlı özelliği uygulayacağınızı görürsünüz. Ancak bu izlenecek yol için, şablondan bir sınıf kitaplığı bir paket oluşturmak için yeterli olduğundan ek kod yazmayacaktır. Hala, paket için bir işlev kodu isterseniz, aşağıdakileri kullanın:
namespace AppLogger
{
public class Logger
{
public void Log(string text)
{
Console.WriteLine(text);
}
}
}
Paket özelliklerini yapılandırma
Çözüm Gezgini ' de projeye sağ tıklayın, Özellikler menü komutu ' nı ve ardından paket sekmesini seçin.
paket sekmesi yalnızca Visual Studio, genellikle .NET Standard veya .net Core sınıf kitaplığı projelerindeki sdk stilindeki projeler için görünür; sdk olmayan bir stil projesi (genellikle .NET Framework) hedefliyorsanız, projeyi geçirin veya adım adım yönergeler için bir .NET Framework paketi oluşturma ve yayımlama makalesine bakın.

Not
Genel tüketim için oluşturulmuş paketler için Etiketler özelliğine özel dikkat edin, Etiketler başkalarının paketinizi bulmasına ve ne yaptığını anlamasına yardımcı olur.
Paketinize benzersiz bir tanımlayıcı verin ve istediğiniz diğer özellikleri doldurun. MSBuild özelliklerinin (SDK stili proje) bir . nuspeciçindeki özelliklere eşlenmesi için bkz. paket hedefleri. Özelliklerinin açıklamaları için bkz . nuspec dosya başvurusu. buradaki tüm özellikler,
.nuspecproje için Visual Studio oluşturduğu bildirime gider.Önemli
Pakete, nuget.org genelinde veya kullandığınız herhangi bir konakta benzersiz bir tanımlayıcı vermeniz gerekir. Bu izlenecek yol için, "örnek" veya "test" adını, sonraki yayımlama adımı, paketi herkese açık hale getirir (ancak gerçekten onu kullanacağından çok fazla olabilir).
Zaten var olan bir ada sahip bir paketi yayımlamayı denerseniz, bir hata görürsünüz.
Seçim Doğrudan proje dosyasında özellikleri görmek için Çözüm Gezgini içinde projeye sağ tıklayın ve Appgünlükçü. csproj öğesini Düzenle' yi seçin.
bu seçenek yalnızca SDK stili özniteliği kullanan projeler için Visual Studio 2017 ' den itibaren kullanılabilir. Aksi takdirde, projeye sağ tıklayın ve Project kaldır' ı seçin. Ardından, kaldırılan projeye sağ tıklayın ve Appgünlükçü. csproj öğesini Düzenle' yi seçin.
Pack komutunu çalıştırın
Yapılandırmayı serbestolarak ayarlayın.
Çözüm Gezgini projeye sağ tıklayın ve ardından paket komutunu seçin:

Paket komutunu görmüyorsanız, projeniz muhtemelen bir SDK stili proje değildir ve CLI kullanmanız gerekir . projeyi geçirin ve clı kullanın ya da adım adım yönergeler için .NET Framework paketi oluşturma ve yayımlama konusuna bakın.
Visual Studio projeyi oluşturur ve
.nupkgdosyayı oluşturur. Paket dosyasının yolunu içeren ayrıntılar için Çıkış penceresini inceleyin (aşağıdakine benzer). Ayrıca, derlenmiş derlemeninbin\Release\netstandard2.0.NET Standard 2,0 hedefine uygun olduğunu unutmayın.1>------ Build started: Project: AppLogger, Configuration: Release Any CPU ------ 1>AppLogger -> d:\proj\AppLogger\AppLogger\bin\Release\netstandard2.0\AppLogger.dll 1>Successfully created package 'd:\proj\AppLogger\AppLogger\bin\Release\AppLogger.1.0.0.nupkg'. ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ==========
Seçim Derleme üzerinde paket oluştur
projeyi oluştururken NuGet paketini otomatik olarak oluşturmak için Visual Studio yapılandırabilirsiniz.
Çözüm Gezgini, projeye sağ tıklayın ve Özellikler' i seçin.
paket sekmesinde, derlemede NuGet paketi oluştur' u seçin.

Not
Paketi otomatik olarak oluşturduğunuzda, paketlenecek süre projenizin derleme süresini arttırır.
(İsteğe bağlı) MSBuild paketi
Pack menü komutunun kullanılmasına alternatif olarak, NuGet 4. x + ve MSBuild 15.1 +, proje gerekli paket verilerini içerdiğinde bir hedefi destekler. Bir komut istemi açın, proje klasörünüze gidin ve aşağıdaki komutu çalıştırın. (MSBuild için gereken tüm yollarla yapılandırıldıklarında, genellikle Başlat menüsü "Geliştirici Komut İstemi Visual Studio" için "" başlatmak istersiniz.)
Daha fazla bilgi için bkz. MSBuild kullanarak paket oluşturma.
Paketi Yayımla
Bir dosyaya sahip olduktan sonra .nupkg , nuget.exe NuGet.org ' dotnet.exe den alınan bir API anahtarı ile birlikte CLI veya CLI kullanarak NuGet.org 'de yayımlayın.
Not
Virüs tarama: NuGet.org 'e yüklenen tüm paketler virüsler için taranır ve herhangi bir virüs bulunursa reddedilir. Nuget.org üzerinde listelenen tüm paketler de düzenli aralıklarla taranır.
Nuget.org ' de yayınlanan paketler, listelemediğiniz müddetçe diğer geliştiricilere herkese açık bir şekilde görünür. Paketleri özel olarak barındırmak için bkz. barındırma paketleri.
API anahtarınızı alın
NuGet.org hesabınızda oturum açın veya henüz yoksa bir hesap oluşturun.
Hesabınızı oluşturma hakkında daha fazla bilgi için bkz. bireysel hesaplar.
Kullanıcı adınızı (sağ üst köşedeki) seçin ve ardından API anahtarları' nı seçin.
Oluştur' u seçin, anahtarınız için bir ad girin, kapsamları Gönder' i seçin. Glob deseninin* girin ve ardından Oluştur' u seçin. (Kapsamlar hakkında daha fazla bilgi için aşağıya bakın.)
Anahtar oluşturulduktan sonra, CLı 'de ihtiyacınız olan erişim anahtarını almak için Kopyala ' yı seçin:

Uyarı
API anahtarınızı her zaman gizli tutun! API anahtarınızı, sizin adınıza herkesin yönetmesine izin veren bir parola olarak değerlendirin. Yanlışlıkla gösterildiğinde API anahtarınızı silmeniz veya yeniden oluşturmanız gerekir.
Önemli
Anahtarı daha sonra tekrar kopyalayamadığından Anahtarınızı güvenli bir konuma kaydedin. API anahtarı sayfasına geri dönerseniz, kopyalamak için anahtarı yeniden oluşturmanız gerekir. Artık paketleri göndermek istemiyorsanız API anahtarını da kaldırabilirsiniz.
Kapsam oluşturma, farklı amaçlar için ayrı API anahtarları oluşturmanıza olanak sağlar. Her anahtarın süre sonu zaman çerçevesi vardır ve belirli paketlere (veya glob desenlerine) kapsamı atanabilir. Her anahtar Ayrıca belirli işlemlere göre kapsamlandırılır: yeni paketleri ve güncelleştirmeleri gönderme, yalnızca güncelleştirmelerin gönderimi veya listesini kaldırma. Kapsam aracılığıyla, kuruluşunuzda yalnızca ihtiyaç duydukları izinlere sahip olmaları için paketleri yöneten farklı kişiler için API anahtarları oluşturabilirsiniz. Daha fazla bilgi için bkz. KAPSAMLı API anahtarları.
DotNet CLı veya nuget.exe CLı ile yayımlama
CLI aracınıza (dotnet CLI) veya .NET Core CLI (nuget.exe CLI) NuGet sekmesini seçin.
Bu adım, kullanmanın önerilen nuget.exe alternatifidir.
Paketi yayımlamadan önce bir komut satırı açabilirsiniz.
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:

Beni okuma ve diğer dosyaları ekleme
Pakete dahil etmek üzere dosyaları doğrudan belirtmek için proje dosyasını düzenleyin ve özelliğini content kullanın:
<ItemGroup>
<Content Include="readme.txt">
<Pack>true</Pack>
<PackagePath>\</PackagePath>
</Content>
</ItemGroup>
Bu, paket kökünde readme.txt adlı bir dosya içerir. Visual Studio paketi doğrudan yükledikten hemen sonra dosyanın içeriğini düz metin olarak görüntüler. (Beni oku dosyaları bağımlılık olarak yüklenmiş paketler için görüntülenmez). Örneğin, HtmlAgilityPack paketi için readme dosyası şu şekilde görünür:

Not
Yalnızca readme.txt proje köküne eklemek, sonuçta elde edilen pakete dahil edilir.
İlgili video
Channel 9 NuGet YouTube'da daha fazla video bulabilirsiniz.