Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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 asrcforrá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.fsprojtartalmazó könyvtár elérési útja.SOLUTIONa megoldásfájl (.slnvagy bővítmény) vagy.slnxa megoldásfájlt tartalmazó könyvtár elérési útja.NUSPECa fájl elérési útja.nuspec. .NET 10-től érhető el.FILEegy 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
dotnetparancsban, amely egy másikdotnetparancs kimenetétől függ, például a használatdotnet build --no-restoreésdotnet 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
Releasekonfigurációt használja azokhoz a projektekhez, amelyeknek a TargetFramework beállításanet8.0vagy újabb verzióra van beállítva. Az alapértelmezett buildkonfigurációDebugaz 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-serversKé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.
--forceMinden 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-sourceTartalmazza a NuGet-csomagok hibakeresési szimbólumait a kimeneti könyvtárban található normál NuGet-csomagok mellett. A forrásfájlok a
srcszimbólumcsomag mappájában találhatók.--include-symbolsTartalmazza a NuGet-csomagok hibakeresési szimbólumait a kimeneti könyvtárban található normál NuGet-csomagok mellett.
-
--interactiveLehető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-buildNem készíti el a projektet csomagolás előtt. Implicit módon beállítja a jelölőt
--no-restoreis.--no-dependenciesFigyelmen kívül hagyja a projektről projektre mutató hivatkozásokat, és csak a gyökérprojektet állítja vissza.
--no-restoreNem hajt végre implicit visszaállítást a parancs futtatásakor.
--nologoNem 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
--outputparancs 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|--serviceableBeá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.onkihagyja a környezetellenőrzést, és engedélyezi a terminálnaplózást.offkihagyja 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ők
q[uiet]: ,m[inimal],n[ormal]d[etailed]ésdiag[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
VersionSuffixhatározza meg. Ennek a tulajdonságnak a csomagverzióra gyakorolt hatása aVersionkövetkező táblázatban látható értékektől ésVersionPrefixtulajdonságoktól függ:Tulajdonságok értékekkel Csomag verziója None 1.0.0Version$(Version)VersionPrefixcsak$(VersionPrefix)VersionSuffixcsak1.0.0-$(VersionSuffix)VersionPrefixésVersionSuffix$(VersionPrefix)-$(VersionSuffix)Ha használni
--version-suffixszeretné, adja megVersionPrefixés neVersiona projektfájlban. Ha például igen,VersionPrefixés ezt adja át0.1.2--version-suffix rc.1, a csomag verziója leszdotnet pack.0.1.2-rc.1Ha
Versionvan értéke, és ezt adja át--version-suffixdotnet pack, a megadott--version-suffixérték figyelmen kívül lesz hagyva.-
-?|-h|--helpA parancs használatának leírását nyomtatja ki.
Példák
Csomagolja be a projektet az aktuális könyvtárba:
dotnet packA projekt csomagolása
app1:dotnet pack ~/projects/app1/project.csprojCsomagolja be a projektet az aktuális könyvtárba, és helyezze az eredményül kapott csomagokat a
nupkgsmappába:dotnet pack --output nupkgsCsomagolja be a projektet az aktuális könyvtárba,
nupkgsés hagyja ki a buildelési lépést:dotnet pack --no-build --output nupkgsHa 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.0azPackageVersionMSBuild tulajdonsággal:dotnet pack -p:PackageVersion=2.1.0Csomagolja be a projektet egy adott célkerethez:
dotnet pack -p:TargetFrameworks=net45Csomagolja be a projektet, és használjon egy adott futtatókörnyezetet (Windows) a visszaállítási művelethez:
dotnet pack --runtime win-x64A 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/nugetA használatról és
NuspecFilea használatrólNuspecBasePathNuspecPropertiesaz 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 ./artifactsCsomagoljon 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