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


dotnet build

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.

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

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

  • FILE a 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-x64 a 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|--runtime beá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 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.

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

  • -f|--framework <FRAMEWORK>

    Egy adott keretrendszer fordítása. A keretrendszert a projektfájlban kell meghatározni. Példák: net7.0, net462.

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

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

    Figyelmen kívül hagyja a projekt–projekt (P2P) hivatkozásokat, és csak a megadott gyökérprojektet hozza létre.

  • --no-incremental

    A 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-restore

    Nem hajt végre implicit visszaállítást a buildelés során.

  • --nologo

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

  • --no-self-contained

    Az 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 a TargetFrameworks beállítást is meg kell határoznia --framework .

    • .NET 7.0.200 SDK és újabb verziók

      Ha ezt a --output parancsot 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 --output beá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ű --output beá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-x64 a 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|--runtime beá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-contained vagy --no-self-contained is. Ha nincs megadva, az alapértelmezett beállítás az aktuális operációs rendszer és architektúra buildelése.

  • --sc|--self-contained

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

  • --ucr|--use-current-runtime

    Haszná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őkq[uiet]: , m[inimal], n[ormal]d[etailed]és diag[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|--help

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

Példák

  • Projekt létrehozása és függőségei:

    dotnet build
    
  • Fájlalapú alkalmazás létrehozása:

    dotnet build MyProject.cs
    

    A 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 Release
    
  • Projekt és függőségeinek létrehozása egy adott futtatókörnyezethez (ebben a példában: Linux):

    dotnet build --runtime linux-x64
    
  • Hozza 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\mypackages
    
  • Hozza 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