dotnet pack

Bu makale şunlar için geçerlidir: ✔️ .NET Core 3.1 SDK ve sonraki sürümler

Name

dotnet pack- Kodu bir NuGet paketine paketler.

Özet

dotnet pack [<PROJECT>|<SOLUTION>] [-c|--configuration <CONFIGURATION>]
    [--force] [--include-source] [--include-symbols] [--interactive]
    [--no-build] [--no-dependencies] [--no-restore] [--nologo]
    [-o|--output <OUTPUT_DIRECTORY>] [--runtime <RUNTIME_IDENTIFIER>]
    [-s|--serviceable] [-v|--verbosity <LEVEL>]
    [--version-suffix <VERSION_SUFFIX>]

dotnet pack -h|--help

Description

dotnet pack komutu projeyi oluşturur ve NuGet paketleri oluşturur. Bu komutun sonucu bir NuGet paketidir (yani bir .nupkg dosyası).

Hata ayıklama simgelerini içeren bir paket oluşturmak istiyorsanız iki seçeneğiniz vardır:

  • --include-symbols - semboller paketini oluşturur.
  • --include-source - içinde kaynak dosyaları içeren bir src klasörle semboller paketini oluşturur.

Paketlenmiş projenin NuGet bağımlılıkları .nuspec dosyasına eklenir, bu nedenle paket yüklendiğinde düzgün bir şekilde çözümlenirler. Paketlenmiş projenin diğer projelere başvuruları varsa, diğer projeler pakete dahil değildir. Projeden projeye bağımlılıklarınız varsa şu anda proje başına bir paketiniz olmalıdır.

Varsayılan olarak, dotnet pack önce projeyi oluşturur. Bu davranıştan kaçınmak istiyorsanız seçeneği geçirin --no-build . Bu seçenek genellikle kodun daha önce derlenmiş olduğunu bildiğiniz Sürekli Tümleştirme (CI) derleme senaryolarında yararlıdır.

Not

Bazı durumlarda örtük derleme gerçekleştirilemez. Bu, derleme ve paket hedefleri arasında döngüsel bir bağımlılıktan kaçınmak için ayarlandığında ortaya GeneratePackageOnBuild çıkabilir. Kilitli bir dosya veya başka bir sorun varsa derleme de başarısız olabilir.

Paketleme işlemi için komutuna dotnet pack MSBuild özellikleri sağlayabilirsiniz. Daha fazla bilgi için bkz. NuGet paketi hedef özellikleri ve MSBuild Command-Line Başvurusu. Örnekler bölümünde, birkaç farklı senaryo için MSBuild -p anahtarının nasıl kullanılacağı gösterilmektedir.

Web projeleri varsayılan olarak paketlenemez. Varsayılan davranışı geçersiz kılmak için .csproj dosyanıza aşağıdaki özelliği ekleyin:

<PropertyGroup>
   <IsPackable>true</IsPackable>
</PropertyGroup>

Örtük geri yükleme

, ve dotnet packgibi dotnet builddotnet newdotnet runbir geri yüklemenin gerçekleşmesini gerektiren tüm komutlar tarafından örtük olarak çalıştırıldığındandotnet publishdotnet test, 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 .

Komutdotnet restore, Azure DevOps Services veya geri yüklemenin ne zaman gerçekleştiğini açıkça denetlemesi gereken derleme sistemlerindeki sürekli tümleştirme derlemeleri 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 belgeleredotnet restore bakın.

Bu komut, uzun biçimde geçirildiğinde (örneğin, --source) seçenekleri desteklerdotnet restore. gibi -skısa form seçenekleri desteklenmez.

İş yükü bildirimi indirmeleri

Bu komutu çalıştırdığınızda, iş yükleri için reklam bildirimlerini zaman uyumsuz bir arka plan indirme işlemi başlatır. Bu komut tamamlandığında indirme hala çalışıyorsa indirme durdurulur. Daha fazla bilgi için bkz . Reklam bildirimleri.

Bağımsız değişkenler

PROJECT | SOLUTION

Paketlenmesi gereken proje veya çözüm. Csproj, vbproj veya fsproj dosyasının ya da çözüm dosyasının veya dizinin yoludur. Belirtilmezse, komut geçerli dizinde bir proje veya çözüm dosyası arar.

Seçenekler

  • -c|--configuration <CONFIGURATION>

    Derleme yapılandırmasını tanımlar. Çoğu proje için varsayılan değer şeklindedir Debug, ancak projenizdeki derleme yapılandırma ayarlarını geçersiz kılabilirsiniz.

  • --force

    Son geri yükleme başarılı olsa bile tüm bağımlılıkların çözümlenmesine zorlar. Bu bayrağı belirtmek project.assets.json dosyasını silmekle aynıdır.

  • -?|-h|--help

    komutunun nasıl kullanılacağına ilişkin bir açıklama yazdırır.

  • --include-source

    Çıkış dizinindeki normal NuGet paketlerine ek olarak hata ayıklama sembollerini NuGet paketleri içerir. Kaynak dosyaları sembol paketindeki src klasöre eklenir.

  • --include-symbols

    Çıkış dizinindeki normal NuGet paketlerine ek olarak hata ayıklama sembollerini NuGet paketleri içerir.

  • --interactive

    Komutun durmasına ve kullanıcı girişini veya eylemini beklemesine izin verir. Örneğin, kimlik doğrulamasını tamamlamak için. .NET Core 3.0 SDK'sı ile kullanılabilir.

  • --no-build

    Paketlemeden önce projeyi oluşturmaz. Ayrıca bayrağı örtük olarak ayarlar --no-restore .

  • --no-dependencies

    Projeden projeye başvuruları yoksayar ve yalnızca kök projeyi geri yükler.

  • --no-restore

    Komutu çalıştırırken örtük bir geri yükleme yürütmez.

  • --nologo

    Başlangıç başlığını veya telif hakkı iletisini görüntülemez.

  • -o|--output <OUTPUT_DIRECTORY>

    Oluşturulan paketleri belirtilen dizine yerleştirir.

  • --runtime <RUNTIME_IDENTIFIER>

    Paketlerin geri yükleneceği hedef çalışma zamanını belirtir. Çalışma Zamanı Tanımlayıcılarının (RID) listesi için rid kataloğuna bakın.

  • -s|--serviceable

    Pakette hizmet edilebilir bayrağını ayarlar. Daha fazla bilgi için bkz. .NET Blogu: .NET Framework 4.5.1 .NET NuGet Kitaplıkları için Microsoft Güvenlik Güncelleştirmelerini Destekler.

  • -v|--verbosity <LEVEL>

    Komutun ayrıntı düzeyini ayarlar. İzin verilen değerler , , m[inimal]n[ormal], d[etailed]ve diag[nostic]değerleridirq[uiet]. Daha fazla bilgi için bkz. LoggerVerbosity.

  • --version-suffix <VERSION_SUFFIX>

    MSBuild özelliğinin VersionSuffix değerini tanımlar. Bu özelliğin paket sürümü üzerindeki etkisi, aşağıdaki tabloda gösterildiği gibi ve VersionPrefix özelliklerinin değerlerine Version bağlıdır:

    Değer içeren özellikler Paket sürümü
    Hiçbiri 1.0.0
    Version $(Version)
    VersionPrefix Sadece $(VersionPrefix)
    VersionSuffix Sadece 1.0.0-$(VersionSuffix)
    VersionPrefix ve VersionSuffix $(VersionPrefix)-$(VersionSuffix)

    kullanmak --version-suffixistiyorsanız, proje dosyasında değil Version belirtinVersionPrefix. Örneğin, ise VersionPrefix0.1.2 ve adresine dotnet packgeçirirseniz --version-suffix rc.1 paket sürümü olacaktır0.1.2-rc.1.

    bir değeri varsa Version ve öğesine dotnet packgeçirirseniz--version-suffix, için --version-suffix belirtilen değer yoksayılır.

Örnekler

  • Projeyi geçerli dizinde paketleyin:

    dotnet pack
    
  • Projeyi paketleyin app1 :

    dotnet pack ~/projects/app1/project.csproj
    
  • Projeyi geçerli dizine paketleyin ve sonuçta elde edilen paketleri klasörüne nupkgs yerleştirin:

    dotnet pack --output nupkgs
    
  • Projeyi geçerli dizinde klasörüne nupkgs paketleyin ve derleme adımını atlayın:

    dotnet pack --no-build --output nupkgs
    
  • Projenin sürüm soneki .csproj dosyasında olduğu gibi <VersionSuffix>$(VersionSuffix)</VersionSuffix> yapılandırıldığında, geçerli projeyi paketleyin ve sonuçta elde edilen paket sürümünü verilen sonekle güncelleştirin:

    dotnet pack --version-suffix "ci-1234"
    
  • MSBuild özelliğiyle PackageVersion paket sürümünü olarak 2.1.0 ayarlayın:

    dotnet pack -p:PackageVersion=2.1.0
    
  • Projeyi belirli bir hedef çerçeve için paketleyin:

    dotnet pack -p:TargetFrameworks=net45
    
  • Projeyi paketleyin ve geri yükleme işlemi için belirli bir çalışma zamanı (Windows 10) kullanın:

    dotnet pack --runtime win10-x64
    
  • Projeyi bir .nuspec dosyası kullanarak paketleyin:

    dotnet pack ~/projects/app1/project.csproj -p:NuspecFile=~/projects/app1/project.nuspec -p:NuspecBasePath=~/projects/app1/nuget
    

    , NuspecBasePathve NuspecPropertieskullanma hakkında NuspecFilebilgi için aşağıdaki kaynaklara bakın: