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 asrc
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 -s
a 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ékenet8.0
vagy egy újabb verzió. Az alapértelmezett buildkonfiguráció azDebug
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ők
q[uiet]
: ,m[inimal]
,n[ormal]
d[etailed]
ésdiag[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 aVersion
következő táblázatban látható értékektől ésVersionPrefix
tulajdonságoktól függ:Tulajdonságok értékekkel Csomag verziója Egyik sem 1.0.0
Version
$(Version)
VersionPrefix
Csak$(VersionPrefix)
VersionSuffix
Csak1.0.0-$(VersionSuffix)
VersionPrefix
ésVersionSuffix
$(VersionPrefix)-$(VersionSuffix)
Ha használni
--version-suffix
szeretné, adja megVersionPrefix
és neVersion
a projektfájlban. Ha például igen,VersionPrefix
és ezt adja át--version-suffix rc.1
dotnet 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
azPackageVersion
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
NuspecProperties
a használatrólNuspecBasePath
NuspecFile
az alábbi forrásokban talál további információt: