Megosztás a következőn keresztül:


dotnet pack

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

Név

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

Szinopszis

dotnet pack [<PROJECT>|<SOLUTION>] [--artifacts-path <ARTIFACTS_DIR>]
    [-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] [--tl:[auto|on|off]] [-v|--verbosity <LEVEL>]
    [--version-suffix <VERSION_SUFFIX>]

dotnet pack -h|--help

Leírás

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 ).

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.

Feljegyzé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.

Megadhatja az MSBuild tulajdonságokat a dotnet pack csomagolási folyamat parancsának. További információ: NuGet pack target properties and the MSBuild Command-Line Reference. A Példák szakasz bemutatja, hogyan használható az MSBuild -p kapcsoló néhány különböző forgatókönyvhöz.

Feljegyzé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 továbbra is hasznos bizonyos esetekben, amikor a explicit visszaállításnak van értelme, például folyamatos integrációs buildek az Azure DevOps Servicesben 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.

Argumentumok

PROJECT | SOLUTION

A csomagolni kívánt projekt vagy megoldás. Ez vagy egy csproj-, vbproj- vagy fsproj-fájl elérési útja, vagy egy megoldásfájlhoz vagy könyvtárhoz. 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 Output Layout. A .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 konfigurációt használja azokhoz a Release projektekhez, amelyeknek a TargetFramework értéke net8.0 vagy egy újabb verzió. Az alapértelmezett buildkonfiguráció az Debug SDK korábbi verzióihoz és a korábbi cél-keretrendszerekhez tartozik. 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ó: "dotnet publish" uses Release configuration and dotnet pack and dotnet pack uses Release configuration.

  • --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.

  • -?|-h|--help

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

  • --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. A .NET Core 3.0 SDK óta érhető el.

  • --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.

  • --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-keretrendszer 4.5.1 Támogatja a Microsoft Biztonsági Frissítések .NET NuGet-kódtárakhoz.

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

    Megadja, hogy a terminálnaplózót kell-e használni 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 a .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ó: LoggerVerbosity.

  • --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
    Egyik sem 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 --version-suffix rc.1dotnet pack, a csomag verziója lesz0.1.2-rc.1.0.1.2

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

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 .csproj fájlban konfigurálva <VersionSuffix>$(VersionSuffix)</VersionSuffix> 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
    
  • Csomagolja be a projektet egy .nuspec fájllal:

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

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