Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
NuGet paketleri, geliştiricilerin projelerinde yeniden kullanabileceği kodu içerir. Kodunuzun ne yaptığı veya ne içerdiği fark etmeksizin, NuGet paketini oluşturmak için ya nuget.exe ya da dotnet.exe komut satırı aracını kullanırsınız.
Bu makalede , dotnet CLI kullanılarak bir paketin nasıl oluşturulacağı açıklanır. Visual Studio 2017'den başlayarak dotnet CLI tüm .NET ve .NET Core iş yüklerine dahil edilir. dotnet CLI veya diğer NuGet istemci araçlarını yüklemeniz gerekiyorsa bkz. NuGet istemci araçlarını yükleme.
Bu konu yalnızca .NET ve SDK stili biçimini kullanan diğer projeler için geçerlidir. Bu projeler için NuGet, proje dosyasındaki bilgileri kullanarak bir paket oluşturur. Hızlı başlangıç öğreticileri için bkz. Dotnet CLI ile paket oluşturma veya Visual Studio ile paket oluşturma.
MSBuild msbuild -t:pack komutu işlevsel olarak dotnet pack ile eşdeğerdir. MSBuild ile paket oluşturma hakkında daha fazla bilgi için bkz. MSBuild kullanarak NuGet paketi oluşturma.
Uyarı
GENELLIKLE .NET Framework projeleri olmak üzere SDK stili olmayan projelere yönelik paketler oluşturmak ve yayımlamak için bkz. nuget.exe CLI kullanarak paket oluşturma veya Visual Studio (.NET Framework) kullanarak paket oluşturma ve yayımlama.
packages.config'den PackageReference'a geçirilen projeler için kullanın
msbuild -t:pack. Daha fazla bilgi için bkz. Geçiş sonrasında paket oluşturma.
Özellikleri ayarlama
komutunu kullanarak dotnet new classlib örnek bir sınıf kitaplığı projesi oluşturabilir ve kullanarak projeyi dotnet packpaketleyebilirsiniz.
dotnet pack komutu aşağıdaki özellikleri kullanır. Proje dosyasında değerleri belirtmezseniz, komut varsayılan değerleri kullanır.
-
PackageId, paket tanımlayıcısı, nuget.org ve paketi barındıran diğer tüm hedefler arasında benzersiz olmalıdır. Bir değer belirtmezseniz, komutAssemblyNamedeğerini kullanır. -
Version, formdaMajor.Minor.Patch[-Suffix]-Suffixyayın öncesi sürümleri tanımlayan belirli bir sürüm numarasıdır. Belirtilmezse, varsayılan değer olur1.0.0. -
Authorspaketin yazarlarıdır. Belirtilmezse, varsayılan değer olurAssemblyName. -
Companyşirket bilgileridir. Belirtilmezse, varsayılan değer değerdirAuthors. -
Productürün bilgileridir. Belirtilmezse, varsayılan değer olurAssemblyName.
Visual Studio'da bu değerleri proje özelliklerinde ayarlayabilirsiniz. Çözüm Gezgini'nde projeye sağ tıklayın, Özellikler'i ve ardından Paket bölümünü seçin. Ayrıca özellikleri doğrudan .csproj veya başka bir proje dosyasına da ekleyebilirsiniz.
Aşağıdaki örnekte paket özellikleri eklenmiş bir proje dosyası gösterilmektedir.
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<PackageId>UniqueID</PackageId>
<Version>1.0.0</Version>
<Authors>Author Name</Authors>
<Company>Company Name</Company>
<Product>Product Name</Product>
</PropertyGroup>
</Project>
, Titleve PackageDescriptiongibi PackageTagsdiğer isteğe bağlı özellikleri ekleyebilirsiniz.
Uyarı
Genel kullanım için oluşturduğunuz paketlerde PackageTags özelliğine özellikle dikkat edin. Etiketler, başkalarının paketinizi bulmasına ve ne yaptığını anlamasına yardımcı olur.
Komut, proje dosyalarınızdaki PackageReference'leri otomatik olarak oluşturulan paketteki bağımlılıklara dönüştürür dotnet pack.
IncludeAssets, ExcludeAssets ve PrivateAssets etiketleri aracılığıyla hangi varlıkların dahil edileceğini kontrol edebilirsiniz. Daha fazla bilgi için bkz. Bağımlılık varlıklarını denetleme.
Bağımlılıklar, isteğe bağlı özellikler ve sürüm oluşturma hakkında daha fazla bilgi için bkz:
- Proje dosyalarındaki paket başvuruları
- Paket sürümü oluşturma
- NuGet meta veri özellikleri
- MSBuild paketi hedefleri
Benzersiz bir paket tanımlayıcısı seçin ve sürüm numarasını ayarlayın
Paket tanımlayıcısı ve sürüm numarası, pakette yer alan tam kodu benzersiz olarak tanımlar.
Paket tanımlayıcısını oluşturmak için şu en iyi yöntemleri izleyin:
Tanımlayıcı, nuget.org ve paketi barındıran diğer tüm konumlarda benzersiz olmalıdır. Çakışmaları önlemek için iyi bir desen, tanımlayıcının ilk parçası olarak şirketinizin adını kullanmaktır.
Nokta gösterimini kullanarak .NET ad alanı benzeri bir adlandırma kuralını izleyin. Örneğin
Contoso.Utility.UsefulStuffveyaContoso-Utility-UsefulStuffyerineContoso_Utility_UsefulStuffkullanın. Paket tanımlayıcısını kodun kullandığı ad alanıyla eşleştirdiğinizde tüketiciler için de yararlı olur.Başka bir paketin nasıl kullanılacağını gösteren bir örnek kod paketi oluşturursanız, içinde olduğu gibi
.Sampletanımlayıcıya ekleyinContoso.Utility.UsefulStuff.Sample.Örnek paketin özgün pakete bağımlılığı vardır. Örnek paketi oluşturduğunuzda,
<IncludeAssets>değerinicontentFilesile ekleyin. İçerik klasöründe, örnek kodu \Samples\identifier< adlı \Samples\>Contoso.Utility.UsefulStuff.Sample gibi bir klasörde düzenleyin.
Paket sürümünü ayarlamak için şu en iyi yöntemleri izleyin:
Genel olarak, paket sürümünü proje veya derleme sürümüyle eşleşecek şekilde ayarlayın, ancak bu kesinlikle gerekli değildir. Bir paketi tek bir derlemeyle sınırladığınızda sürümü eşleştirmek basittir. NuGet, derleme sürümleriyle değil bağımlılıkları çözerken paket sürümleriyle ilgilenir.
Standart olmayan bir sürüm düzeni kullanıyorsanız, Paket sürümü oluşturma bölümünde açıklandığı gibi NuGet sürüm oluşturma kurallarını dikkate aldığınızdan emin olun. NuGet çoğunlukla Semantik Sürüm Oluşturma 2.0.0 ile uyumludur.
Uyarı
Bağımlılık çözümlemesi hakkında daha fazla bilgi için bkz. PackageReference ile bağımlılık çözümleme. Sürüm oluşturma işlemini anlamanıza yardımcı olabilecek bilgiler için şu blog gönderileri dizisine bakın:
İsteğe bağlı açıklama alanı ekleme
Paketin isteğe bağlı açıklaması, paketin nuget.org sayfasının BENİOKU sekmesinde görünür. Açıklama, proje dosyasındaki <Description> veya $description dosyasındaki öğelerinden çekilir.
Aşağıdaki örnekte, bir .NET paketi için Description dosyasında bir örnek gösterilmektedir:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<PackageId>Azure.Storage.Blobs</PackageId>
<Version>12.4.0</Version>
<PackageTags>Microsoft Azure Storage Blobs;Microsoft;Azure;Blobs;Blob;Storage;StorageScalable</PackageTags>
<Description>
This client library enables working with the Microsoft Azure Storage Blob service for storing binary and text data.
For this release see notes - https://github.com/Azure/azure-sdk-for-net/blob/master/sdk/storage/Azure.Storage.Blobs/README.md and https://github.com/Azure/azure-sdk-for-net/blob/master/sdk/storage/Azure.Storage.Blobs/CHANGELOG.md
in addition to the breaking changes https://github.com/Azure/azure-sdk-for-net/blob/master/sdk/storage/Azure.Storage.Blobs/BreakingChanges.txt
Microsoft Azure Storage quickstarts and tutorials - https://learn.microsoft.com/azure/storage/
Microsoft Azure Storage REST API Reference - https://learn.microsoft.com/rest/api/storageservices/
REST API Reference for Blob Service - https://learn.microsoft.com/rest/api/storageservices/blob-service-rest-api
</Description>
</PropertyGroup>
</Project>
Pack komutunu çalıştırma
NuGet paketini veya .nupkg dosyasını oluşturmak için proje klasöründen dotnet pack komutunu çalıştırın ve bu komut projeyi otomatik olarak oluşturur.
dotnet pack
Çıkışta .nupkg dosyasının yolu gösterilir:
MSBuild version 17.3.0+92e077650 for .NET
Determining projects to restore...
Restored D:\proj\AppLoggerNet\AppLogger\AppLogger.csproj (in 97 ms).
Successfully created package 'D:\proj\AppLoggerNet\AppLogger\bin\Debug\AppLogger.1.0.0.nupkg'.
Derleme sırasında paketi otomatik olarak oluşturma
dotnet build komutunu her çalıştırdığınızda dotnet pack'ün otomatik olarak çalışması için, aşağıdaki satırı <PropertyGroup> etiketinin içine proje dosyanıza ekleyin:
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
Uyarı
Paketi otomatik olarak oluşturduğunuzda paketleme, projenizin derleme süresini artırır.
Bir çözümde dotnet pack çalıştırıldığında, çözümdeki IsPackable özelliği true olarak ayarlanmış ve paketlenebilir olan tüm projeler paketlenir.
Paket yüklemesini test et
Paketi yayımlamadan önce paketi projeye yüklemeyi test etmelisiniz. Test, gerekli dosyaların projede doğru konumlarda olmasını sağlar.
Normal paket yükleme işlemini kullanarak Visual Studio'da veya komut satırında yüklemeyi el ile test edin.
Önemli
Paketler oluşturulduktan sonra değiştirilemez. Bir sorunu düzeltirseniz paket içeriğini değiştirin ve yeniden pakete ekleyin.
Paketi yeniden oluşturdıktan sonra yeniden test, genel paketler klasörünüzü temizleyene kadar paketin eski sürümünü kullanmaya devam eder. Klasörü temizlemek, her derlemede benzersiz bir ön sürüm etiketi kullanmayan paketler için özellikle önemlidir.
Sonraki Adımlar
Paketi oluşturduktan sonra .nupkg dosyasını istediğiniz konağa yayımlayabilirsiniz.
Paketinizin özelliklerini genişletmenin veya diğer senaryoları desteklemenin yolları için aşağıdaki makalelere bakın:
- Paket sürümü oluşturma
- Birden çok hedef çerçeveyi destekleme
- Paket ekle simgesi
- Kaynak ve yapılandırma dosyalarının dönüşümleri
- Yerelleştirme
- Yayın öncesi sürümler
- Paket türünü ayarlama
- MSBuild özellikler ve hedefler
- COM birlikte çalışma derlemeleri ile paketler oluşturma
- Yerel paketler oluşturma
- Sembol paketleri oluşturma (.snupkg)