dotnet pack

Bu makale için geçerlidir: ✔️ .NET Core 2.x SDK ve sonraki sürümleri

Name

dotnet pack- Kodu bir NuGet 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

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

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

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

NuGet proje bağımlılıkları .nuspec dosyasına eklendikten sonra paket yüklenirken düzgün bir şekilde çözümlenir. Paketlenmiş projenin diğer projelere başvuruları varsa, diğer projeler pakete dahil değildir. Şu anda projeden projeye bağımlılıkları varsa proje başına bir paketiniz olması gerekir.

Varsayılan olarak, dotnet pack önce projeyi derlemektir. Bu davranıştan kaçınmak isterseniz seçeneğini --no-build belirtin. Bu seçenek genellikle kodun daha önce yerleşik olduğunu biliyorsanız Sürekli Tümleştirme (CI) derleme senaryolarında kullanışlıdır.

Not

Bazı durumlarda, örtülü derleme gerçekleştirilamaz. Derleme ve paket hedefleri arasında döngüsel bir bağımlılıktan kaçınmak için bu durum GeneratePackageOnBuild ayarlanıp ayarlansa oluşabilir. Kilitli bir dosya veya başka bir sorun varsa derleme de başarısız olabilir.

Paketleme işlemi MSBuild komutuna dotnet pack yeni özellikler sebilirsiniz. Daha fazla bilgi için bkz. NuGet paketi hedef özellikleri ve MSBuild Command-Line Başvurusu. Örnekler bölümünde, birkaç farklı MSBuild -p anahtar anahtarının nasıl kullanılası açıktır.

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

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

Örtülü geri yükleme

,,,, dotnet restore Ve gibi geri yükleme gerektiren tüm komutlar tarafından örtük olarak çalıştırıldığı için çalıştırmanız gerekmez dotnet new dotnet build dotnet run dotnet test dotnet publish dotnet pack . Örtük geri yüklemeyi devre dışı bırakmak için --no-restore seçeneğini kullanın.

dotnet restoreBu komut, açıkça geri yükleme işleminin, Azure DevOps Services veya derleme sistemlerindeki sürekli tümleştirme yapıları gibi, geri yüklemenin ne zaman gerçekleşeceğini açıkça denetmasının gerektiği bazı senaryolarda de yararlıdır.

NuGet beslemelerini yönetme hakkında daha fazla bilgi için dotnet restore belgelerinebakın.

Bu komut, dotnet restore uzun biçimde geçirildiğinde seçenekleri destekler (örneğin, --source ). Gibi kısa form seçenekleri -s desteklenmez.

İş yükü bildirimi İndirmeleri

Bu komutu çalıştırdığınızda, iş yükleri için reklam bildirimlerinin zaman uyumsuz karşıdan yükleme işlemini başlatır. Bu komut tamamlandığında indirme çalışmaya devam ediyorsa, indirme durdurulur. Daha fazla bilgi için bkz. reklam bildirimleri.

Bağımsız değişkenler

PROJECT | SOLUTION

Paket için proje veya çözüm. Bu bir csproj, vbproj veya fsproj dosyasının veya bir çözüm dosyasının ya da dizinin yoludur. Belirtilmezse, komut geçerli dizinde bir proje veya çözüm dosyası arar.

Seçenekler

  • -c|--configuration <CONFIGURATION>

    Yapı yapılandırmasını tanımlar. Çoğu proje için varsayılandır Debug , ancak projenizde 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üme kavuşturulmalarını güçler. Bu bayrağı belirtmek project.assets.json dosyasını silmekle aynıdır.

  • -?|-h|--help

    Komutunun nasıl kullanıla ilgili bir açıklama yazdırır.

  • --include-source

    Çıkış dizininde normal NuGet paketlerine ek olarak hata ayıklama NuGet paketlerini içerir. Kaynak dosyaları semboller paketi src içindeki klasöre dahil edilir.

  • --include-symbols

    Çıkış dizininde normal NuGet paketlerine ek olarak hata ayıklama NuGet paketlerini içerir.

  • --interactive

    Komutun Kullanıcı girişini veya eylemini durdurmasına ve beklemesine izin verir. Örneğin, kimlik doğrulamasını tamamlamaya yönelik. .NET Core 3,0 SDK 'dan beri kullanılabilir.

  • --no-build

    Paketlemeden önce projeyi derlemez. Ayrıca bayrağını örtülü olarak --no-restore ayarlar.

  • --no-dependencies

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

  • --no-restore

    Komutu çalıştırarak örtülü geri yükleme yürütmez.

  • --nologo

    Başlangıç başlığı veya telif hakkı iletisi görüntülenmez. .NET Core 3.0 SDK'dan itibaren kullanılabilir.

  • -o|--output <OUTPUT_DIRECTORY>

    Yerleşik paketleri belirtilen dizine ekler.

  • --runtime <RUNTIME_IDENTIFIER>

    Paketleri geri yüklemek için hedef çalışma zamanının belirtir. Çalışma Zamanı Tanımlayıcılarının (RID) listesi için bkz. RID kataloğu.

  • -s|--serviceable

    Pakette hizmetlenebilir 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ılı düzeyini ayarlar. İzin verilen değerler q[uiet] : , , , ve m[inimal] n[ormal] d[etailed] diag[nostic] . Daha fazla bilgi için bkz. LoggerVerbosity.

  • --version-suffix <VERSION_SUFFIX>

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

    Değerlere sahip ö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 için proje --version-suffix dosyasında VersionPrefix değil Version belirtin. Örneğin, ise VersionPrefix ve 0.1.2 'e --version-suffix rc.1 dotnet pack geçersiniz, paket sürümü 0.1.2-rc.1 olur.

    bir Version değeri varsa ve değerine --version-suffix dotnet pack geçersiniz, için belirtilen değer --version-suffix yoksayılır.

Örnekler

  • Projeyi geçerli dizinde paketle:

    dotnet pack
    
  • Projeyi app1 paketle:

    dotnet pack ~/projects/app1/project.csproj
    
  • Projeyi geçerli dizinde paketle ve sonuçta elde edilen paketleri klasörüne nupkgs yer.

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

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

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

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

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

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

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

    , ve kullanma hakkında NuspecFile bilgi NuspecBasePath için aşağıdaki NuspecProperties kaynaklara bakın: