dotnet pack

A cikk a következőre vonatkozik: ✔️ .NET 6 SDK és újabb verziók

Név

dotnet pack - A kódot nuGet-csomagba csomagolja.

Áttekintés

dotnet pack [<PROJECT>|<SOLUTION>|<NUSPEC>|<FILE>]
    [--artifacts-path <ARTIFACTS_DIR>] [-c|--configuration <CONFIGURATION>]
    [--disable-build-servers] [--force] [--include-source] [--include-symbols]
    [--interactive] [--no-build] [--no-dependencies] [--no-restore] [--nologo]
    [-o|--output <OUTPUT_DIRECTORY>] [-p|--property:<PROPERTYNAME>=<VALUE>]
    [--runtime <RUNTIME_IDENTIFIER>]
    [-s|--serviceable] [--tl:[auto|on|off]] [-v|--verbosity <LEVEL>]
    [--version <VERSION>] [--version-suffix <VERSION_SUFFIX>]

dotnet pack -h|--help

Description

A dotnet pack parancs létrehozza a projektet, és NuGet-csomagokat hoz létre. A parancs eredménye egy NuGet-csomag (azaz egy .nupkg-fájl ).

A 10-.NET kezdve közvetlenül argumentumként átadhat egy .nuspec fájlt vagy egy fájlalapú alkalmazást (.cs fájlt). Ha átad egy .nuspec fájlt, a .dotnet pack fájlból hozza létre a csomagot anélkül, hogy projektfájlt kellene igényelnie, és nem kell futtatnia az MSBuild fájlt. Ha fájlalapú alkalmazást ad át, dotnet pack projektfájl nélkül csomagolja be.

Ha olyan csomagot szeretne létrehozni, amely tartalmazza a hibakeresési szimbólumokat, két lehetőség közül választhat:

  • --include-symbols - létrehozza a szimbólumcsomagot.
  • --include-source - létrehozza a szimbólumcsomagot a src forrásfájlokat tartalmazó mappával.

A csomagolt projekt NuGet-függőségei hozzá lesznek adva a .nuspec fájlhoz, így azok megfelelően feloldódnak a csomag telepítésekor. Ha a csomagolt projekt más projektekre hivatkozik, a többi projekt nem szerepel a csomagban. Jelenleg projektenként egy csomagnak kell lennie, ha projekt–projekt függőségekkel rendelkezik.

Alapértelmezés szerint dotnet pack először a projektet hozza létre. Ha el szeretné kerülni ezt a viselkedést, adja meg a --no-build lehetőséget. Ez a lehetőség gyakran hasznos a folyamatos integrációs (CI) buildelési forgatókönyvekben, ahol tudja, hogy a kód korábban készült.

Megjegyzés:

Bizonyos esetekben az implicit build nem hajtható végre. Ez akkor fordulhat elő, ha GeneratePackageOnBuild be van állítva, hogy elkerülje a build- és csomagcélok közötti ciklikus függőséget. A build akkor is meghiúsulhat, ha zárolt fájl vagy más probléma van.

Megjegyzés:

A webes projektek nem csomagolhatók.

Implicit visszaállítás

Nem kell futtatnia dotnet restore , mert implicit módon fut minden olyan parancs, amely visszaállítást igényel, például dotnet new, dotnet build, dotnet run, dotnet test, dotnet publishés dotnet pack. Az implicit visszaállítás letiltásához használja a --no-restore lehetőséget.

A dotnet restore parancs még mindig hasznos bizonyos esetekben, amikor a explicit visszaállításnak van értelme, például folyamatos integrációs buildek Azure DevOps Szolgáltatásokban vagy olyan buildrendszerekben, amelyeknek explicit módon kell szabályozni a visszaállítást.

A NuGet-hírcsatornák kezelésével kapcsolatos információkért tekintse meg a dokumentációtdotnet restore.

Ez a parancs támogatja a dotnet restore hosszú formában átadott beállításokat (például --source). A rövid űrlapbeállítások, például -sa rövid űrlapok nem támogatottak.

Számítási feladatjegyzék letöltése

A parancs futtatásakor a rendszer elindítja a számítási feladatok hirdetési jegyzékeinek aszinkron háttérletöltését. Ha a letöltés a parancs befejeződésekor is fut, a letöltés leáll. További információ: Hirdetési jegyzékek.

Arguments

PROJECT | SOLUTION | NUSPEC | FILE

A csomagolni kívánt projekt, megoldás, .nuspec fájl vagy fájlalapú alkalmazás.

  • PROJECTa projektfájlt .csproj.vbproj.fsproj tartalmazó könyvtár elérési útja.

  • SOLUTION a megoldásfájl (.sln vagy bővítmény) vagy .slnx a megoldásfájlt tartalmazó könyvtár elérési útja.

  • NUSPEC a fájl elérési útja .nuspec . .NET 10-től érhető el.

  • FILE egy fájlalapú alkalmazás elérési útja (egy C#-fájl, amely nem rendelkezik megfelelő projektfájllal). .NET 10-től érhető el. További információ: Fájlalapú C#-alkalmazások létrehozása.

    Ha nincs megadva, a parancs az aktuális könyvtárban keres egy projekt- vagy megoldásfájlt.

Beállítások

  • --artifacts-path <ARTIFACTS_DIR>

    A végrehajtott parancs összes buildkimeneti fájlja a megadott elérési út alatti almappákba kerül, projekt szerint elválasztva. További információ: Artifacts Kimeneti elrendezés. Ezt a lehetőséget és a megadott értéket explicit módon kaszkádoltnak kell lennie minden olyan dotnet parancsban, amely egy másik dotnet parancs kimenetétől függ, például a használat dotnet build --no-restore és dotnet publish --no-builda . .NET 8 SDK óta érhető el.

  • -c|--configuration <CONFIGURATION>

    Meghatározza a buildkonfigurációt. Ha a .NET 8 SDK-val vagy egy újabb verzióval fejleszt, a parancs alapértelmezés szerint a Release konfigurációt használja azokhoz a projektekhez, amelyeknek a TargetFramework beállítása net8.0 vagy újabb verzióra van beállítva. Az alapértelmezett buildkonfiguráció Debug az SDK korábbi verzióihoz és a korábbi cél-keretrendszerekhez. Felülbírálhatja az alapértelmezett beállítást a projektbeállításokban vagy ezzel a beállítással. További információ: a "dotnet publish" kiadási konfigurációs és "dotnet pack" kiadási konfigurációshasznál.

  • --disable-build-servers

    Kényszeríti a parancsot az állandó buildkiszolgálók figyelmen kívül hagyására. Ez a beállítás konzisztens módot biztosít a buildek gyorsítótárazásának letiltására, ami az alapoktól kényszeríti a buildeket. A gyorsítótárakra nem támaszkodó buildek akkor hasznosak, ha a gyorsítótárak valamilyen okból sérültek vagy helytelenek. .NET 7 SDK óta érhető el.

  • --force

    Minden függőséget feloldani kell, még akkor is, ha az utolsó visszaállítás sikeres volt. A jelölő megadása megegyezik a project.assets.json fájl törlésével.

  • --include-source

    Tartalmazza a NuGet-csomagok hibakeresési szimbólumait a kimeneti könyvtárban található normál NuGet-csomagok mellett. A forrásfájlok a src szimbólumcsomag mappájában találhatók.

  • --include-symbols

    Tartalmazza a NuGet-csomagok hibakeresési szimbólumait a kimeneti könyvtárban található normál NuGet-csomagok mellett.

  • --interactive

    Lehetővé teszi, hogy a parancs leálljon, és várja meg a felhasználói bemenetet vagy műveletet. Például a hitelesítés befejezéséhez.

  • --no-build

    Nem készíti el a projektet csomagolás előtt. Implicit módon beállítja a jelölőt --no-restore is.

  • --no-dependencies

    Figyelmen kívül hagyja a projektről projektre mutató hivatkozásokat, és csak a gyökérprojektet állítja vissza.

  • --no-restore

    Nem hajt végre implicit visszaállítást a parancs futtatásakor.

  • --nologo

    Nem jelenik meg az indítási szalagcím vagy a szerzői jogi üzenet.

  • -o|--output <OUTPUT_DIRECTORY>

    A beépített csomagokat a megadott könyvtárba helyezi.

    • .NET 7.0.200 SDK

      A 7.0.200 SDK-ban, ha megadja a --output parancs megoldáson való futtatásakor a lehetőséget, a parancssori felület hibát ad ki. Ez egy regresszió, és a .NET SDK 7.0.201-ben és újabb verzióiban lett javítva.

  • -p|--property:<PROPERTYNAME>=<VALUE>

    Beállít egy vagy több MSBuild tulajdonságot. Ha közvetlenül csomagol egy .nuspec fájlt, a tulajdonságokat a rendszer a .nuspec fájl jogkivonat-cseréjére használja az MSBuild tulajdonság helyett. Adjon meg több tulajdonságot pontosvesszővel vagy a beállítás ismétlésével:

    --property:<NAME1>=<VALUE1>;<NAME2>=<VALUE2>
    --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
    

    További információ: NuGet pack target properties and MSBuild parancssori referencia.

  • --runtime <RUNTIME_IDENTIFIER>

    Megadja a cél futtatókörnyezetet a csomagok visszaállításához. A futtatókörnyezet-azonosítók (RID-k) listáját a RID-katalógusban találja.

  • -s|--serviceable

    Beállítja a használható jelzőt a csomagban. További információ: .NET Blog: .NET Framework 4.5.1 Támogatja Microsoft Biztonság Frissítések .NET NuGet-kódtárakhoz.

  • --tl:[auto|on|off]

    Megadja, hogy a terminálnaplózót használni kell-e a buildkimenethez. Az alapértelmezett érték az auto, amely először ellenőrzi a környezetet a terminálnaplózás engedélyezése előtt. A környezet ellenőrzi, hogy a terminál képes-e modern kimeneti funkciókat használni, és nem használ átirányított szabványos kimenetet az új naplózó engedélyezése előtt. on kihagyja a környezetellenőrzést, és engedélyezi a terminálnaplózást. off kihagyja a környezetellenőrzést, és az alapértelmezett konzolnaplózót használja.

    A Terminálnaplózó megjeleníti a visszaállítási fázist, majd a buildelési fázist. Az egyes fázisok során az éppen épülő projektek a terminál alján jelennek meg. Az épület összes projektje az MSBuild-célt és a célra fordított időt is kimeneteli. Ebben az információban további információt talál a buildről. Amikor egy projekt befejeződött, egyetlen "befejezett build" szakasz lesz megírva, amely rögzíti a következőt:

    • Az épített projekt neve.
    • A cél-keretrendszer (ha több-célzott).
    • A build állapota.
    • A build elsődleges kimenete (amely hivatkozásra van hivatkozva).
    • A projekthez létrehozott diagnosztikák.

    Ez a beállítás .NET 8-tól érhető el.

  • -v|--verbosity <LEVEL>

    A parancs részletességi szintjét állítja be. Az engedélyezett értékek a következőkq[uiet]: , m[inimal], n[ormal]d[etailed]és diag[nostic]. További információért lásd LoggerVerbosity.

  • --version <VERSION>

    A létrehozandó csomag verziója. .nuspec fájl csomagolásakor felülbírálja a .nuspec fájl verziószámát.

    Megjegyzés:

    .NET 10-től érhető el.

  • --version-suffix <VERSION_SUFFIX>

    Az MSBuild tulajdonság értékét VersionSuffix határozza meg. Ennek a tulajdonságnak a csomagverzióra gyakorolt hatása a Version következő táblázatban látható értékektől és VersionPrefix tulajdonságoktól függ:

    Tulajdonságok értékekkel Csomag verziója
    None 1.0.0
    Version $(Version)
    VersionPrefix csak $(VersionPrefix)
    VersionSuffix csak 1.0.0-$(VersionSuffix)
    VersionPrefix és VersionSuffix $(VersionPrefix)-$(VersionSuffix)

    Ha használni --version-suffixszeretné, adja meg VersionPrefix és ne Version a projektfájlban. Ha például igen, VersionPrefix és ezt adja át 0.1.2--version-suffix rc.1, a csomag verziója leszdotnet pack.0.1.2-rc.1

    Ha Version van értéke, és ezt adja át--version-suffixdotnet pack, a megadott --version-suffix érték figyelmen kívül lesz hagyva.

  • -?|-h|--help

    A parancs használatának leírását nyomtatja ki.

Példák

  • Csomagolja be a projektet az aktuális könyvtárba:

    dotnet pack
    
  • A projekt csomagolása app1 :

    dotnet pack ~/projects/app1/project.csproj
    
  • Csomagolja be a projektet az aktuális könyvtárba, és helyezze az eredményül kapott csomagokat a nupkgs mappába:

    dotnet pack --output nupkgs
    
  • Csomagolja be a projektet az aktuális könyvtárba, nupkgs és hagyja ki a buildelési lépést:

    dotnet pack --no-build --output nupkgs
    
  • Ha a projekt verzió utótagja a <VersionSuffix>$(VersionSuffix)</VersionSuffix> fájlban konfigurálva van, csomagolja be az aktuális projektet, és frissítse az eredményül kapott csomagverziót a megadott utótaggal:

    dotnet pack --version-suffix "ci-1234"
    
  • Állítsa be a csomagverziót 2.1.0 az PackageVersion MSBuild tulajdonsággal:

    dotnet pack -p:PackageVersion=2.1.0
    
  • Csomagolja be a projektet egy adott célkerethez:

    dotnet pack -p:TargetFrameworks=net45
    
  • Csomagolja be a projektet, és használjon egy adott futtatókörnyezetet (Windows) a visszaállítási művelethez:

    dotnet pack --runtime win-x64
    
  • A projekt csomagolása .nuspec fájllal (MSBuild projektalapú megközelítés):

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

    A használatról és NuspecFilea használatról NuspecBasePathNuspecPropertiesaz alábbi forrásokban talál további információt:

  • Csomagoljon be egy .nuspec fájlt közvetlenül projektfájl nélkül (10-.NET vagy újabb):

    dotnet pack MyPackage.nuspec --output ./artifacts
    
    ```dotnetcli
    dotnet pack MyPackage.nuspec --version 1.2.3 --output ./artifacts
    
  • Csomagoljon be közvetlenül egy .nuspec fájlt, és használjon tokencserét (10-.NET vagy újabb):

    dotnet pack MyPackage.nuspec --property:Version=1.2.3 --property:Configuration=Release --output ./artifacts