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 kaynaksrcdosyaları 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.
--forceSon 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|--helpKomutunun 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
srciçindeki klasöre dahil edilir.--include-symbolsÇıkış dizininde normal NuGet paketlerine ek olarak hata ayıklama NuGet paketlerini içerir.
--interactiveKomutun 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-buildPaketlemeden önce projeyi derlemez. Ayrıca bayrağını örtülü olarak
--no-restoreayarlar.--no-dependenciesProjeden projeye başvuruları yoksayar ve yalnızca kök projeyi geri yükleme.
--no-restoreKomutu çalıştırarak örtülü geri yükleme yürütmez.
--nologoBaş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|--serviceablePakette 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]: , , , vem[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 gibiVersionveVersionPrefixözelliklerinin değerlerine bağlıdır:Değerlere sahip özellikler Paket sürümü Hiçbiri 1.0.0Version$(Version)VersionPrefixSadece$(VersionPrefix)VersionSuffixSadece1.0.0-$(VersionSuffix)VersionPrefixveVersionSuffix$(VersionPrefix)-$(VersionSuffix)kullanmak için proje
--version-suffixdosyasındaVersionPrefixdeğilVersionbelirtin. Örneğin, iseVersionPrefixve0.1.2'e--version-suffix rc.1dotnet packgeçersiniz, paket sürümü0.1.2-rc.1olur.bir
Versiondeğeri varsa ve değerine--version-suffixdotnet packgeçersiniz, için belirtilen değer--version-suffixyoksayılır.
Örnekler
Projeyi geçerli dizinde paketle:
dotnet packProjeyi
app1paketle:dotnet pack ~/projects/app1/project.csprojProjeyi geçerli dizinde paketle ve sonuçta elde edilen paketleri klasörüne
nupkgsyer.dotnet pack --output nupkgsProjeyi geçerli dizinde klasörüne
nupkgspaketle ve derleme adımını atla:dotnet pack --no-build --output nupkgsProjenin 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.0PackageVersionayarlayın:dotnet pack -p:PackageVersion=2.1.0Projeyi belirli bir hedef çerçeve için paketle:
dotnet pack -p:TargetFrameworks=net45Projeyi paketle ve geri yükleme işlemi için belirli bir çalışma Windows 10 (çalışma zamanı) kullan:
dotnet pack --runtime win10-x64Projeyi 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
NuspecFilebilgiNuspecBasePathiçin aşağıdakiNuspecPropertieskaynaklara bakın: