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 build – Projekt, megoldás vagy fájlalapú alkalmazás és annak összes függősége összeállítása.
Szinopszis
dotnet build [<PROJECT>|<SOLUTION>|<FILE>] [-a|--arch <ARCHITECTURE>]
[--artifacts-path <ARTIFACTS_DIR>] [-bl|--binaryLogger:<FILE>]
[-c|--configuration <CONFIGURATION>] [--disable-build-servers]
[-f|--framework <FRAMEWORK>] [--force] [--interactive]
[--no-dependencies] [--no-incremental] [--no-restore] [--nologo]
[--no-self-contained] [-o|--output <OUTPUT_DIRECTORY>] [--os <OS>]
[-p|--property:<PROPERTYNAME>=<VALUE>] [-r|--runtime <RUNTIME_IDENTIFIER>]
[--sc|--self-contained] [--source <SOURCE>]
[--tl:[auto|on|off]] [ --ucr|--use-current-runtime]
[-v|--verbosity <LEVEL>] [--version-suffix <VERSION_SUFFIX>]
dotnet build -h|--help
Leírás
A dotnet build parancs bináris fájlok készletébe építi a projektet, a megoldást vagy a fájlalapú alkalmazást és annak függőségeit. A bináris fájlok tartalmazzák a projekt kódját köztes nyelvű (IL) fájlokban, .dll kiterjesztéssel. A projekt típusától és beállításaitól függően más fájlok is lehetnek, például:
- Az alkalmazás futtatásához használható végrehajtható fájl.
- A .pdb kiterjesztéssel végzett hibakereséshez használt szimbólumfájlok.
- Egy .deps.json fájl, amely felsorolja az alkalmazás vagy tár függőségeit.
- Egy .runtimeconfig.json fájl, amely meghatározza az alkalmazás megosztott futtatókörnyezetét és verzióját.
- Egyéb kódtárak, amelyektől a projekt függ (projekthivatkozásokon vagy NuGet-csomaghivatkozásokon keresztül).
Az .NET Core 3.0-s és újabb verzióit megcélzó végrehajtható projektek esetén a rendszer a kódtár-függőségeket a kimeneti mappába másolja. Ez azt jelenti, hogy ha nincs más közzétételspecifikus logika (például webes projektek), a build kimenetének üzembe helyezhetőnek kell lennie.
Implicit visszaállítás
Az építéshez szükség van a project.assets.json fájlra, amely felsorolja az alkalmazás függőségeit. A fájl a végrehajtáskor dotnet restore jön létre. Az eszköz nem tudja feloldani a referencia-szerelvényeket az eszközkészletek nélkül, ami hibákhoz vezet.
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.
Végrehajtható vagy kódtár kimenete
Azt, hogy a projekt végrehajtható-e, a projektfájl tulajdonsága határozza-e meg <OutputType> . Az alábbi példa egy végrehajtható kódot előállító projektet mutat be:
<PropertyGroup>
<OutputType>Exe</OutputType>
</PropertyGroup>
Tár létrehozásához hagyja ki a <OutputType> tulajdonságot, vagy módosítsa az értékét a következőre Library: . A kódtár IL DLL-je nem tartalmaz belépési pontokat, és nem hajtható végre.
MSBuild
dotnet build az MSBuild használatával hozza létre a projektet, a megoldást vagy a fájlalapú alkalmazást. Támogatja a párhuzamos és növekményes buildeket is. További információ: Növekményes buildek.
A parancs a beállításain kívül elfogadja az dotnet build MSBuild beállításait is, például -p a tulajdonságok beállítását vagy -l egy naplózó definiálásához. Ezekről a lehetőségekről az MSBuild parancssori referenciában talál további információt. Vagy használhatja a dotnet msbuild parancsot is.
Feljegyzés
Ha dotnet build a rendszer automatikusan futtatja dotnet run, az olyan argumentumokat, mint a -property:property=value nem tiszteletben tartjuk.
A futtatás dotnet build egyenértékű a futtatással dotnet msbuild -restore, azonban a kimenet alapértelmezett részletessége eltérő.
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 | FILE
A projekt- vagy megoldás- vagy C# (fájlalapú alkalmazás) fájl, amelyen működni szeretne. Ha nincs megadva fájl, az MSBuild az aktuális könyvtárban keres egy projektet vagy megoldást.
PROJECTegy C#, F# vagy Visual Basic projektfájl elérési útja és fájlneve, vagy egy C#, F# vagy Visual Basic projektfájlt tartalmazó könyvtár elérési útja.SOLUTIONegy megoldásfájl elérési útja és fájlneve (.sln vagy .slnx kiterjesztés), vagy egy megoldásfájlt tartalmazó könyvtár elérési útja.FILEa 10 .NET argumentum. Egy fájlalapú alkalmazás elérési útja és fájlneve. A fájlalapú alkalmazások egyetlen fájlban találhatók, amelyek egy megfelelő projektfájl (.csproj) nélkül vannak létrehozva és futtatva. További információ: Fájlalapú C#-alkalmazások létrehozása.
Beállítások
-
-a|--arch <ARCHITECTURE>A célarchitektúra megadása. Ez egy rövidített szintaxis a futtatókörnyezet azonosítójának (RID) beállításához, ahol a megadott érték az alapértelmezett RID-vel van kombinálva. Egy gépen például
win-x64a RID beállítása a következőre--arch x86van advawin-x86: . Ha ezt a lehetőséget használja, ne használja a-r|--runtimebeállítást. .NET 7. előzetes verzió óta érhető el. -
--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. 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. -bl|--binaryLogger:<FILE>Engedélyezi a bináris naplózót, és opcionálisan megadja a kimeneti fájl nevét.
Ha nincs megadva fájlnév, az alapértelmezett érték az aktuális könyvtárban vanmsbuild.binlog.A bináris napló részletes összeállítási információkat tartalmaz, és az MSBuild Structured Log Viewer használatával nyitható meg.
dotnet build -bl dotnet build -bl:build-log.binlog-
-c|--configuration <CONFIGURATION>Meghatározza a buildkonfigurációt. A legtöbb projekt esetében az
Debugalapértelmezett beállítás, de felülbírálhatja a projekt buildkonfigurációs beállításait. -
--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.
-f|--framework <FRAMEWORK>Egy adott keretrendszer fordítása. A keretrendszert a projektfájlban kell meghatározni. Példák:
net7.0,net462.--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.
-
--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-dependenciesFigyelmen kívül hagyja a projekt–projekt (P2P) hivatkozásokat, és csak a megadott gyökérprojektet hozza létre.
--no-incrementalA buildet nem biztonságosként jelöli meg a növekményes build esetében. Ez a jelző kikapcsolja a növekményes fordítást, és a projekt függőségi gráfjának tiszta újraépítését kényszeríti ki.
--no-restoreNem hajt végre implicit visszaállítást a buildelés során.
--nologoNem jelenik meg az indítási szalagcím vagy a szerzői jogi üzenet.
-
--no-self-containedAz alkalmazás közzététele keretrendszerfüggő alkalmazásként. Az alkalmazás futtatásához telepíteni kell egy kompatibilis .NET futtatókörnyezetet a célgépre.
-o|--output <OUTPUT_DIRECTORY>A beépített bináris fájlok elhelyezésére szolgáló könyvtár. Ha nincs megadva, az alapértelmezett elérési út a következő
./bin/<configuration>/<framework>/. Több cél-keretrendszerrel rendelkező projektek esetén (a tulajdonságon keresztül) ezt aTargetFrameworksbeállítást is meg kell határoznia--framework..NET 7.0.200 SDK és újabb verziók
Ha ezt a
--outputparancsot egy megoldáson futtatja, a parancssori felület figyelmeztetést küld (7.0.200-ban hiba) a kimeneti útvonal nem egyértelmű szemantikája miatt. A--outputbeállítás nem engedélyezett, mert az összes beépített projekt kimenete a megadott könyvtárba lesz másolva, amely nem kompatibilis a több célzott projekttel, valamint a közvetlen és tranzitív függőségek különböző verzióival rendelkező projektekkel. További információ: A megoldásszintű--outputbeállítás már nem érvényes a buildel kapcsolatos parancsokra.
-
--os <OS>A cél operációs rendszer (OS) megadása. Ez egy rövidített szintaxis a futtatókörnyezet azonosítójának (RID) beállításához, ahol a megadott érték az alapértelmezett RID-vel van kombinálva. Egy gépen például
win-x64a RID beállítása a következőre--os linuxvan advalinux-x64: . Ha ezt a lehetőséget használja, ne használja a-r|--runtimebeállítást. 6 .NET óta érhető el. -p|--property:<PROPERTYNAME>=<VALUE>Beállít egy vagy több MSBuild tulajdonságot. 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>-r|--runtime <RUNTIME_IDENTIFIER>Megadja a cél futtatókörnyezetet. A futtatókörnyezet-azonosítók (RID-k) listáját a RID-katalógusban találja. Ha ezt a lehetőséget .NET 6 SDK-val használja, használja
--self-containedvagy--no-self-containedis. Ha nincs megadva, az alapértelmezett beállítás az aktuális operációs rendszer és architektúra buildelése.-
--sc|--self-containedTegye közzé a .NET futtatókörnyezetet az alkalmazással, hogy a futtatókörnyezetet ne kelljen telepíteni a célgépre.
--source <SOURCE>A Visszaállítási művelet során használni kívánt NuGet-csomagforrás URI-ja.
-
--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.
-
--ucr|--use-current-runtimeHasználja az aktuális futtatókörnyezetet cél futtatókörnyezetként.
-
-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-suffix <VERSION_SUFFIX>Beállítja a
$(VersionSuffix)projekt létrehozásakor használni kívánt tulajdonság értékét. Ez csak akkor működik, ha a$(Version)tulajdonság nincs beállítva.$(Version)Ezután a kötőjellel elválasztott kötőjellel$(VersionPrefix)kombinált értékre van állítva$(VersionSuffix).-
-?|-h|--helpA parancs használatának leírását nyomtatja ki.
Példák
Projekt létrehozása és függőségei:
dotnet buildFájlalapú alkalmazás létrehozása:
dotnet build MyProject.csA fájlalapú alkalmazástámogatás .NET SDK 10.0.100-ban lett hozzáadva.
Projekt és függőségeinek létrehozása a kiadási konfigurációval:
dotnet build --configuration ReleaseProjekt és függőségeinek létrehozása egy adott futtatókörnyezethez (ebben a példában: Linux):
dotnet build --runtime linux-x64Hozza létre a projektet, és használja a megadott NuGet-csomagforrást a visszaállítási művelet során:
dotnet build --source c:\packages\mypackagesHozza létre a projektet, és állítsa be az 1.2.3.4-es verziót buildparaméterként az
-pMSBuild beállítással:dotnet build -p:Version=1.2.3.4