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


MSBuild parancssori referencia

Ha MSBuild.exe használ projekt- vagy megoldásfájl létrehozásához, több kapcsolót is megadhat a folyamat különböző aspektusainak megadásához.

Minden kapcsoló két formában érhető el: -switch és /switch. A dokumentáció csak a -switch űrlapot jeleníti meg. A kapcsolók nem érzékenyek a kis- és nagybetűkre. Ha a Windows parancssorától eltérő rendszerhéjból futtatja az MSBuild parancsot, előfordulhat, hogy a kapcsoló argumentumlistái (pontosvesszővel vagy vesszővel elválasztva) egyetlen vagy dupla idézőjelet igényelnek annak biztosításához, hogy a rendszerhéj helyett a listák az MSBuildnek legyenek átadva.

A .NET CLI-parancsok dotnet build, dotnet publish, dotnet msbuild és a kapcsolódó parancsok továbbítják ezeket a kapcsolókat az MSBuildre, így ez a hivatkozás a parancsok használatakor alkalmazható; azonban dotnet run nem.

Szintaxis

MSBuild.exe [Switches] [ProjectFile]

Érvek

Vita Leírás
ProjectFile Létrehozza a célokat a megadott projektfájlban. Ha nem ad meg projektfájlt, az MSBuild az aktuális munkakönyvtárban keres egy fájlnévkiterjesztést, amely proj végződik, és ezt a fájlt használja. Ehhez az argumentumhoz Visual Studio-megoldásfájlt is megadhat. A Visual Studio 17.12-ben és újabb verzióiban a .slnx megoldásfájl formátuma, valamint a .sln formátum is támogatott. Ugyanahhoz a megoldáshoz .sln és .slnx fájlok is ugyanabban a könyvtárban lehetnek; ha mindkettő jelen van, explicit módon meg kell adnia az egyiket a megoldás létrehozásához.

Kapcsolók

A következő táblázat első oszlopa az egyes kapcsolók hosszú és rövid formáját jeleníti meg. Mindkét űrlap egyenértékű.

A szögletes zárójelek [] választható részeket jelölnek, a kapcsos zárójelek pedig {}a felhasználó által megadott értékeket jelölik.

Kapcsoló Leírás
-detailedSummary[:{True or False}]

-ds[:{True or False}]
Ha True, a buildnapló végén részletes információkat jeleníthet meg a létrehozott konfigurációkról és azok csomópontokra való ütemezéséről.
-getItem:{itemName,...} A kiértékelés után írja ki az elem vagy elemek értékét a build végrehajtása nélkül, vagy ha a -targets vagy a -getTargetResult lehetőséget használja, írja ki az értékeket a build után.
-getProperty:{propertyName,...} Írja ki a tulajdonság vagy tulajdonságok értékét a kiértékelés után, a build végrehajtása nélkül, vagy ha a -targets vagy a -getTargetResult lehetőséget használja, írja ki az értékeket a build után.
-getTargetResult:{targetName,...} Írja ki a megadott célok kimeneti értékeit.
-graphBuild[:{True or False}]

-graph[:{True or False}]
Az MSBuild projektgráf készítését és összeállítását okozza. A gráf létrehozása magában foglalja az űrlapfüggőségekre mutató projekthivatkozások azonosítását. A gráf készítése magában foglalja a projekthivatkozások létrehozásának megkísérlését az őket hivatkozó projektek előtt, a hagyományos MSBuild ütemezéstől eltérően. Az MSBuild 16-os vagy újabb verziójára van szükség.
-help

/? vagy -h
Használati adatok megjelenítése. A következő parancs egy példa:

msbuild.exe -?
-ignoreProjectExtensions: {extensions}

-ignore: {extensions}
A megadott bővítmények figyelmen kívül hagyása annak meghatározásakor, hogy melyik projektfájlt kell létrehozni. Több bővítmény elválasztásához használjon pontosvesszőt vagy vesszőt, ahogy az alábbi példa is mutatja:

-ignoreprojectextensions:.vcproj,.sln
-inputResultsCaches[:{cacheFile; ...}]

-irc[:{cacheFile; ...}]
Pontosvesszővel elválasztott lista a bemeneti gyorsítótárfájlokról, amelyekből az MSBuild beolvassa a builderedményeket. Ha -isolateProjectsFalseértékre van állítva , akkor ez Trueértékre állítja.
-interactive[:{True or False}] Azt jelzi, hogy a buildben lévő műveletek használhatják a felhasználót. Ne használja ezt az argumentumot olyan automatizált forgatókönyvekben, ahol az interaktivitás nem várható. A -interactive megadása megegyezik a -interactive:truemegadásával. A paraméterrel felülbírálhat egy válaszfájlból származó értéket.
-isolateProjects[:{True, MessageUponIsolationViolation, False}]

-isolate[:{True, MessageUponIsolationViolation, False}]
Az MSBuild külön-külön hozza létre az egyes projekteket. Ha MessageUponIsolationViolation (vagy rövid Message) értékre van állítva, a rendszer csak a legfelső szintű célok eredményeit szerializálja, ha a -outputResultsCache kapcsoló van megadva. Ez a beállítás csökkenti annak az esélyét, hogy egy nem megfelelő állapotot használó függőségi projekt elkülönítés-megsértő célpontja olyan gyorsítótárazott céltól való függőség miatt, amelynek mellékhatásait nem veszik figyelembe. (Például egy tulajdonság definíciója.) Ez a mód szigorúbb, mivel megköveteli, hogy a projektgráf statikusan felderíthető legyen a kiértékelési időben, de javíthatja az ütemezést, és csökkentheti a memóriaterhelést nagy projektek létrehozásakor.
-lowPriority[:{True or False}]

-low[:{True or False}]
Az MSBuild alacsony folyamatprioritáson fut. A -lowPriority megadása megegyezik a -lowPriority:Truemegadásával.
-maxCpuCount[:{number}]

-m[:{number}]
Az egyidejű folyamatok maximális számát határozza meg az összeállítás során. Ha nem tartalmazza ezt a kapcsolót, az alapértelmezett érték 1. Ha érték megadása nélkül adja meg ezt a kapcsolót, az MSBuild legfeljebb a számítógép processzorainak számát használja. További információ: Több projekt párhuzamos létrehozása.

Az alábbi példa arra utasítja az MSBuildet, hogy három MSBuild folyamattal építsen, amely lehetővé teszi három projekt egyidejű összeállítását:

msbuild myproject.proj -maxcpucount:3
-noAutoResponse

-noautorsp
Ne adjon meg automatikusan MSBuild.rsp vagy Directory.Build.rsp fájlokat.
-nodeReuse:{value}

-nr:{value}
Engedélyezze vagy tiltsa le az MSBuild csomópontok újrafelhasználását. A következő értékeket adhatja meg:

- Igaz. A csomópontok a build befejezése után is megmaradnak, hogy a későbbi buildek használhassák őket (alapértelmezett).
- Hamis. A csomópontok nem maradnak a build befejezése után.

A csomópontok egy végrehajtó projektnek felelnek meg. Ha a -maxcpucount kapcsolót is tartalmazza, egyszerre több csomópont is végrehajtható.
-nologo Ne jelenítse meg az indítási szalagcímet vagy a szerzői jogi üzenetet.
-preprocess[:{filepath}]

-pp[:{filepath}]
Egyetlen, összesített projektfájl létrehozása a build során importálandó összes fájl felvázolásával, a határaikkal megjelölve. Ezzel a kapcsolóval könnyebben megállapíthatja, hogy mely fájlokat importálja, honnan importálja a fájlokat, és mely fájlok járulnak hozzá a buildhez. Ha ezt a kapcsolót használja, a projekt nem lesz felépítve.

Ha filepathad meg, az összesített projektfájl a fájl kimenete. Ellenkező esetben a kimenet megjelenik a konzolablakban.

Ha tudni szeretné, hogyan szúrhat be egy projektfájlt egy másik projektfájlba a Import elem használatával, olvassa el Importálás elem (MSBuild) és Útmutató: Azonos cél használata több projektfájlban.
-outputResultsCache[:{cacheFile}]

-orc[:{cacheFile}]
Kimeneti gyorsítótárfájl, amelyben az MSBuild a buildelési eredmény gyorsítótárainak tartalmát írja a build végén. Ha -isolateProjectsFalseértékre van állítva , akkor ez Trueértékre állítja.
profileEvaluation:{file} Profilok MSBuild kiértékelése és az eredmény írása a megadott fájlba. Ha a megadott fájl kiterjesztése ".md", az eredmény Markdown formátumban jön létre. Ellenkező esetben tabulátorral tagolt fájl jön létre.
-property:{name}={value}

-p:{name}={value}
A megadott projektszintű tulajdonságok beállítása vagy felülbírálása, ahol a name a tulajdonság neve, a value pedig a tulajdonság értéke. Adja meg az egyes tulajdonságokat külön-külön, vagy használjon pontosvesszőt vagy vesszőt több tulajdonság elkülönítéséhez, ahogy az alábbi példa mutatja:

-property:WarningLevel=2;OutDir=bin\Debug

A gyakran használt tulajdonságok listájáért tekintse meg gyakori MSBuild projekttulajdonságokat. Az elérhető tulajdonságok teljes készlete a projekt típusától, az SDK-tól és az importált fájloktól függ.
-restore

-r
Futtatja a Restore célt a tényleges célok létrehozása előtt.
-restoreProperty:{name}={value}

-rp:{name}={value}
Ezeket a projektszintű tulajdonságokat csak a visszaállítás során állítsa be vagy bírálja felül, és ne használja a -property argumentummal megadott tulajdonságokat. name a tulajdonság neve, value pedig a tulajdonság értéke. Pontosvesszővel vagy vesszővel elválaszthat több tulajdonságot, vagy külön megadhatja az egyes tulajdonságokat.
-target:{targets}

-t:{targets}
Hozza létre a megadott célokat a projektben. Adja meg az egyes célokat külön-külön, vagy használjon pontosvesszőt vagy vesszőt több cél elkülönítéséhez, ahogy az alábbi példa mutatja:

-target:PrepareResources;Compile

Ha ezzel a kapcsolóval ad meg célokat, azok a projektfájl DefaultTargets attribútumában lévő célok helyett futnak. További információ: Target build order és How to: Specify which target to build first.

A cél a tevékenységek egy csoportja. További információ: Célok.
-targets[:{file}]

-ts[:{file}]
Írja be az elérhető célok listáját a megadott fájlba (vagy a kimeneti eszközre, ha nincs megadva fájl), anélkül, hogy ténylegesen végrehajtanák a buildelési folyamatot.
-toolsVersion:{version}

-tv:{version}
Egyéni eszközkészletet ad meg. Az eszközkészletek egy alkalmazás létrehozásához használt feladatokból, célokból és eszközökből állnak. Lásd: Toolset (ToolsVersion) és Standard és egyéni eszközkészlet-konfigurációk.
-validate:[{schema}]

-val[{schema}]
Ellenőrizze a projektfájlt, és ha az ellenőrzés sikeres, hozza létre a projektet.

Ha nem adja meg a schema, a projekt az alapértelmezett sémával lesz érvényesítve.

Ha schemaad meg, a projekt a megadott sémán lesz érvényesítve.

A következő beállítás egy példa: -validate:MyExtendedBuildSchema.xsd
-verbosity:{level}

-v:{level}
Megadja a buildnaplóban megjelenítendő információk mennyiségét. Minden naplózó az adott naplózóhoz beállított részletességi szint alapján jeleníti meg az eseményeket.

A következő részletességi szinteket adhatja meg: q[uiet], m[inimal], n[ormal] (alapértelmezett), d[etailed]és diag[nostic].

A következő beállítás egy példa: -verbosity:quiet
-version

-ver
Csak a verzióinformációk megjelenítése. A projekt nem készült el.
@{file} Parancssori kapcsolók beszúrása szövegfájlból. Ha több fájllal rendelkezik, külön adja meg őket. További információ: Válaszfájlok.
-warnAsError[:{code; ...}]

-err[:{code; ...}]
A hibákként kezelendő figyelmeztető kódok listája. Több figyelmeztető kód elválasztásához használjon pontosvesszőt vagy vesszőt. Ha az összes figyelmeztetést hibaként szeretné kezelni, használja a kapcsolót érték nélkül. Ha egy figyelmeztetést hibaként kezelnek, a cél továbbra is úgy fut, mintha figyelmeztetés lenne, de a teljes build meghiúsul.

Példa: -err:MSB4130
-warnNotAsError[:{code; ...}]

-noerr[:{code; ...}]
MSBuild 17.0 és újabb verziók. Azoknak a figyelmeztető kódoknak a listája, amelyeket nem szabad hibaként előléptetni. Ha a warnAsError kapcsoló úgy van beállítva, hogy az összes figyelmeztetést hibaként előléptesse, a warnNotAsError kapcsolóval megadott hibakódok nem lesznek előléptetve. Ennek nincs hatása, ha a warnAsError nincs beállítva az összes figyelmeztetés hibaként való előléptetésére. Több figyelmeztető kód elválasztásához használjon pontosvesszőt vagy vesszőt.

Példa: -noerr:MSB4130
-warnAsMessage[:{code}; ...}]

-noWarn[:{code; ...}]
Az alacsony fontosságú üzenetekként kezelendő figyelmeztető kódok listája. Több figyelmeztető kód elválasztásához használjon pontosvesszőt vagy vesszőt.

Példa: -noWarn:MSB3026

Kapcsolók a naplózókhoz

Kapcsoló Leírás
-binaryLogger[:[LogFile=]{output.binlog}
[;ProjectImports=None,Embed,ZipFile]]

-bl[:[LogFile=]{output.binlog}
[;ProjectImports=None,Embed,ZipFile]]
Szerializálja az összes buildeseményt egy tömörített bináris fájlba. Alapértelmezés szerint a fájl az aktuális könyvtárban található, és msbuild.binlog. A bináris napló részletes leírást ad a buildelési folyamatról, amely később használható a szövegnaplók rekonstruálásához, és amelyet más elemzőeszközök is használhatnak. A bináris naplók általában 10-20-szor kisebbek a legrészletesebb szöveges diagnosztikai szintű naplónál, de több információt tartalmaznak.

A bináris naplózó alapértelmezés szerint összegyűjti a projektfájlok forrásszövegét, beleértve az összes importált projektet és a build során észlelt célfájlokat. Ezt a viselkedést az opcionális ProjectImports paraméter vezérli:

- ProjectImports=None. Ne gyűjtse össze a projektimportálást.
- ProjectImports=Beágyazás. Projektimportálás beágyazása a naplófájlba (alapértelmezett).
- ProjectImports=ZipFile. Mentse a projektfájlokat a(z) {output}.projectimports.zip, ahol <kimeneti> ugyanaz a név, mint a bináris naplófájl neve.

A ProjectImports alapértelmezett beállítása a Beágyazás.
Megjegyzés: a naplózó nem gyűjt nem MSBuild forrásfájlokat, például .cs, .cppstb.
A .binlog fájl "visszajátszható", ha a projektet/megoldást nem projekt/megoldás, hanem argumentumként továbbítja msbuild.exe. Más naplózók úgy kapják meg a naplófájlban található információkat, mintha az eredeti buildelés történt volna. A bináris naplóról és annak használatáról a következő címen olvashat bővebben: https://github.com/dotnet/msbuild/blob/main/documentation/wiki/Binary-Log.md

példák:
- -bl
- -bl:output.binlog
- -bl:output.binlog;ProjectImports=None
- -bl:output.binlog;ProjectImports=ZipFile
- -bl:..\..\custom.binlog
- -binaryLogger
-consoleLoggerParameters:{parameters}

-clp:{parameters}
Adja meg a megadott paramétereket a konzolnaplózónak, amely a konzolablakban jeleníti meg a buildadatokat. A következő paramétereket adhatja meg:

- PerformanceSummary. A tevékenységekben, célokban és projektekben töltött idő megjelenítése.
- összefoglaló. A hiba és a figyelmeztetés összegzésének megjelenítése a végén.
- NoSummary. Ne jelenjen meg a hiba és a figyelmeztetés összegzése a végén.
- ErrorsOnly. Csak hibák megjelenítése.
- WarningsOnly. Csak figyelmeztetések megjelenítése.
- NoItemAndPropertyList. Ne jelenítse meg az egyes projekt buildek elején megjelenő elemek és tulajdonságok listáját, ha a részletességi szint diagnostic.
- ShowCommandLine. TaskCommandLineEvent üzenetek megjelenítése.
- ShowProjectFile. A projektfájl elérési útjának megjelenítése diagnosztikai üzenetekben. Ez a beállítás alapértelmezés szerint be van kapcsolva.
- ShowTimestamp. Az időbélyeg megjelenítése bármely üzenet előtagjaként.
- ShowEventId. Minden megkezdett esemény, befejezett esemény és üzenet eseményazonosítójának megjelenítése.
- ForceNoAlign. Ne igazítsa a szöveget a konzolpuffer méretéhez.
- DisableConsoleColor. Használja az alapértelmezett konzolszíneket az összes naplózási üzenethez.
- DisableMPLogging. Tiltsa le a kimenet többprocesszoros naplózási stílusát, ha nem többprocesszoros módban fut.
- EnableMPLogging. Engedélyezze a többprocesszoros naplózási stílust akkor is, ha nem többprocesszoros módban fut. Ez a naplózási stílus alapértelmezés szerint be van kapcsolva.
- ForceConsoleColor. Akkor is használjon ANSI-konzolszíneket, ha a konzol nem támogatja.
- részletességi. Bírálja felül a naplózó -verbosity beállítását.

Használjon pontosvesszőt több paraméter elválasztásához, ahogy az alábbi példa is mutatja:

-consoleLoggerParameters:PerformanceSummary;NoSummary -verbosity:minimal

Az alapértelmezett konzolnaplózó normál részletességgel rendelkezik, és tartalmaz egy Summary.
-distributedFileLogger

-dfl
Naplózza az egyes MSBuild csomópontok buildkimenetét a saját fájljába. Ezeknek a fájloknak a kezdeti helye az aktuális könyvtár. Alapértelmezés szerint a fájlok neve MSBuild{NodeId}.log. A -fileLoggerParameters kapcsolóval megadhatja a fájlok helyét és a fileLogger egyéb paramétereit.

Ha a -fileLoggerParameters kapcsolóval nevez el egy naplófájlt, az elosztott naplózó ezt a nevet használja sablonként, és hozzáfűzi a csomópontazonosítót ehhez a névhez, amikor minden csomóponthoz létrehoz egy naplófájlt.
-distributedLogger:{central logger},{forwarding logger}, ...

-dl:{central logger},{forwarding logger, ...}
Naplóesemények az MSBuildből, és egy másik naplózópéldány csatolása az egyes csomópontokhoz. Több naplózó megadásához külön adja meg az egyes naplózókat.

A naplózó szintaxisával megadhatja a naplózót, kivéve, ha ön ad meg további osztályt a továbbító naplózónak. A naplózó szintaxisát a -logger kapcsolóban találhatja meg.

Az alábbi példák a kapcsoló használatát mutatják be:

-dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

-dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll
-fileLogger[{number}]

-fl[{number}]
Naplózza a build kimenetét egyetlen fájlba az aktuális könyvtárban. Ha nem adja meg a number, a kimeneti fájl neve msbuild.log. Ha numberad meg, a kimeneti fájl neve msbuild<n>.log, ahol <n>number. Number számjegy lehet 1 és 9 között.

A -fileLoggerParameters kapcsolóval megadhatja a fájl helyét és a fileLogger egyéb paramétereit.
-fileLoggerParameters[{number}]:

parameters

-flp[{number}]: {parameters}
Megadja a fájlnaplózó és az elosztott fájlnaplózó további paramétereit. A kapcsoló jelenléte azt jelenti, hogy a megfelelő -filelogger[number] kapcsoló jelen van. Number számjegy lehet 1 és 9 között.

A -consoleloggerparameterslistában szereplő összes paramétert használhatja. Az alábbi paraméterek közül egy vagy több is használható:

- LogFile. Annak a naplófájlnak az elérési útja, amelybe a buildnapló meg van írva. Az elosztott fájlnaplózó előtagja ezt az elérési utat a naplófájlok nevére osztja.
- Hozzáfűző. Meghatározza, hogy a buildnapló hozzá van-e fűzve a naplófájlhoz, vagy felülírja azt. A kapcsoló beállításakor a buildnapló hozzá lesz fűzve a naplófájlhoz. Ha a kapcsoló nincs jelen, a rendszer felülírja egy meglévő naplófájl tartalmát.
Példa: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log;append
Ha explicit true vagy false beállítást is tartalmaz, a rendszer a beállítástól függetlenül hozzáfűzi a naplót. Ha nem tartalmazza a hozzáfűző kapcsolót, a rendszer felülírja a naplót.
Ebben az esetben a fájl felülíródik: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log
Ebben az esetben a fájl hozzá van fűzve: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log;append=true
Ebben az esetben a fájl hozzá van fűzve: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log;append=false
- kódolási. Megadja a fájl kódolását (például UTF-8, Unicode vagy ASCII).

Az alábbi példa külön naplófájlokat hoz létre a figyelmeztetésekhez és a hibákhoz:

-flp1:logfile=errors.txt;errorsonly -flp2:logfile=warnings.txt;warningsonly

Az alábbi példák további lehetőségeket mutatnak be:

-fileLoggerParameters:LogFile=MyLog.log;Append; Verbosity=diagnostic;Encoding=UTF-8

-flp:Summary;Verbosity=minimal;LogFile=msbuild.sum

-flp1:warningsonly;logfile=msbuild.wrn

-flp2:errorsonly;logfile=msbuild.err
-logger:logger

-l:logger
Az MSBuild eseménynaplózásához használandó naplózót adja meg. Több naplózó megadásához külön adja meg az egyes naplózókat.

Használja a következő szintaxist logger: [LoggerClass,]LoggerAssembly[;LoggerParameters]

Használja a következő szintaxist LoggerClass: [PartialOrFullNamespace.]LoggerClassName

Nem kell megadnia a naplózóosztályt, ha a szerelvény pontosan egy naplózót tartalmaz.

Használja a következő szintaxist LoggerAssembly: AssemblyName[,StrongName] \| AssemblyFile

A naplózóparaméterek megadása nem kötelező, és a rendszer pontosan a megadott módon továbbítja a naplózónak.

Az alábbi példák a -logger kapcsolót használják.

-logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral

-logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML
-noConsoleLogger

-noconlog
Tiltsa le az alapértelmezett konzolnaplózót, és ne naplózza az eseményeket a konzolon.
-terminalLogger[:auto,on,off]

-tl[:auto,on,off]
Engedélyezze vagy tiltsa le a terminálnaplózó. A terminálnaplózó továbbfejlesztett buildkimenetet biztosít a konzolon valós időben, a projekt szerint logikusan rendszerezve, és úgy van kialakítva, hogy kiemelje a végrehajtható információkat. Adja meg auto (vagy használja az argumentumok nélküli beállítást) a terminálnaplózó használatához csak akkor, ha a standard kimenet nincs átirányítva. Ne elemezd a kimenetet, és ne hagyatkozz arra, hogy a későbbi verziókban változatlan maradjon. Ez a lehetőség az MSBuild 17.8-s és újabb verzióiban érhető el.

Példa

Az alábbi példa a rebuild projekt célját építi ki.

MSBuild.exe MyProject.proj -t:rebuild

Lásd még: