.NET CLI ile NuGet paketi oluşturma

Not

Aşağıda Unix kullanan komut satırı örnekleri gösterilmektedir. dotnet pack Burada gösterildiği gibi komutu Windows'da da aynı şekilde çalışır.

.NET Standard ve .NET Core kitaplıklarının NuGet paketleri olarak dağıtılması beklenir. Aslında tüm .NET Standart kitaplıkları bu şekilde dağıtılır ve kullanılır. Bu, komutuyla dotnet pack en kolay şekilde gerçekleştirilir.

NuGet üzerinden dağıtmak istediğiniz harika bir yeni kitaplık yazdığınızı düşünün. Tam olarak bunu yapmak için platformlar arası araçlarla bir NuGet paketi oluşturabilirsiniz! Aşağıdaki örnekte, hedeflenen SuperAwesomeLibrary adlı bir kitaplık varsayılırnetstandard1.0.

Geçişli bağımlılıklarınız varsa, yani başka bir pakete bağımlı olan bir projeyse, Bir NuGet paketi oluşturmadan önce komutuyla çözümün dotnet restore tamamı için paketleri geri yüklemeyi unutmayın. Bunun başarısız olması komutun düzgün çalışmamasıyla dotnet pack sonuçlanır.

, , dotnet publishve dotnet packgibi dotnet testdotnet rundotnet builddotnet newgeri yükleme gerektiren tüm komutlar tarafından örtük olarak çalıştırıldığından, komutunu çalıştırmanız dotnet restore gerekmez. Örtük geri yüklemeyi devre dışı bırakmak için seçeneğini kullanın --no-restore .

Komutudotnet restore, Azure DevOps Services'teki sürekli tümleştirme derlemeleri veya geri yüklemenin ne zaman gerçekleştiğini açıkça denetlemesi gereken derleme sistemleri gibi açıkça geri yüklemenin anlamlı olduğu bazı senaryolarda hala yararlıdır.

NuGet akışlarını yönetme hakkında bilgi için belgelere dotnet restore bakın.

Paketlerin geri yüklendiğinden emin olduktan sonra, kitaplığın bulunduğu dizine gidebilirsiniz:

cd src/SuperAwesomeLibrary

O zaman komut satırından yalnızca tek bir komut olur:

dotnet pack

/bin/Debug klasörünüz şu şekilde görünür:

$ ls bin/Debug
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

Bu, hata ayıklayabilen bir paket oluşturur. Sürüm ikilileriyle bir NuGet paketi oluşturmak istiyorsanız tek yapmanız gereken (veya -c) anahtarını eklemek --configuration ve bağımsız değişken olarak kullanmaktırrelease.

dotnet pack --configuration release

/bin klasörünüz artık nuget paketinizi içeren ve yayın ikili dosyalarını içeren bir yayın klasörüne sahip olacaktır:

$ ls bin/release
netstandard1.0/
SuperAwesomeLibrary.1.0.0.nupkg
SuperAwesomeLibrary.1.0.0.symbols.nupkg

Ve şimdi bir NuGet paketi yayımlamak için gerekli dosyalara sahipsiniz!

Karıştırmayın dotnet packdotnet publish

Hiçbir noktada komutun söz konusu olmadığını dotnet publish unutmayın. Komutu dotnet publish , tüm bağımlılıklarına sahip uygulamaları aynı pakette dağıtmaya yöneliktir; NuGet aracılığıyla dağıtılacak ve kullanılacak bir NuGet paketi oluşturmak için değildir.

Ayrıca bkz.