MSBuild-kommandoradsreferens
När du använder MSBuild.exe för att skapa ett projekt eller en lösningsfil kan du inkludera flera växlar för att ange olika aspekter av processen.
Varje växel är tillgänglig i två former: -switch
och /switch
. Dokumentationen visar endast formuläret -switch
. Växlar är inte skiftlägeskänsliga. Om du kör MSBuild från ett annat gränssnitt än Windows-kommandotolken kan listor med argument till en växel (avgränsade med semikolon eller kommatecken) behöva enkla eller dubbla citattecken för att säkerställa att listor skickas till MSBuild i stället för att tolkas av gränssnittet.
.NET CLI-kommandona dotnet build, dotnet publish, dotnet msbuild och relaterade kommandon skickar dessa växlar till MSBuild, så den här referensen gäller när du använder dessa kommandon. men dotnet run
inte.
Syntax
MSBuild.exe [Switches] [ProjectFile]
Argument
Argument | Beskrivning |
---|---|
ProjectFile |
Skapar målen i den projektfil som du anger. Om du inte anger en projektfil söker MSBuild i den aktuella arbetskatalogen efter ett filnamnstillägg som slutar proj och använder filen. Du kan också ange en Visual Studio-lösningsfil för det här argumentet. |
Växlar
Den första kolumnen i följande tabell visar en lång och kort form av varje växel. Båda formulären är likvärdiga.
Hakparenteser []
ange valfria delar och klammerparenteser {}
ange värden från användaren.
Strömbrytare | Beskrivning |
---|---|
-detailedSummary[:{True or False}] -ds[:{True or False}] |
Om True visar du detaljerad information i slutet av byggloggen om de konfigurationer som skapades och hur de schemalagts till noder. |
-getItem:{itemName,...} |
Skriv ut värdet för objektet eller objekten efter utvärderingen, utan att köra bygget, eller om antingen alternativet -targets eller alternativet -getTargetResult används, skriver du ut värdena efter bygget. |
-getProperty:{propertyName,...} |
Skriv ut värdet för egenskapen eller egenskaperna efter utvärderingen, utan att köra bygget, eller om antingen alternativet -targets eller alternativet -getTargetResult används, skriver du ut värdena efter bygget. |
-getTargetResult:{targetName,...} |
Skriv ut utdatavärdena för de angivna målen. |
-graphBuild[:{True or False}] -graph[:{True or False}] |
Gör att MSBuild skapar och skapar ett projektdiagram. Att skapa ett diagram innebär att identifiera projektreferenser för att bilda beroenden. Att skapa den grafen innebär att försöka skapa projektreferenser före de projekt som refererar till dem, vilket skiljer sig från traditionell MSBuild-schemaläggning. Kräver MSBuild 16 eller senare. |
-help /? eller -h |
Visa användningsinformation. Följande kommando är ett exempel:msbuild.exe -? |
-ignoreProjectExtensions: {extensions} -ignore: {extensions} |
Ignorera de angivna tilläggen när du avgör vilken projektfil som ska skapas. Använd ett semikolon eller ett kommatecken för att separera flera tillägg, som följande exempel visar:-ignoreprojectextensions:.vcproj,.sln |
-inputResultsCaches[:{cacheFile; ...}] -irc[:{cacheFile; ...}] |
Semikolonavgränsad lista över indatacachefiler som MSBuild läser byggresultat från. Om -isolateProjects är inställt på False anger det till True . |
-interactive[:{True or False}] |
Anger att åtgärder i bygget tillåts interagera med användaren. Använd inte det här argumentet i ett automatiserat scenario där interaktivitet inte förväntas. Att ange -interactive är detsamma som att ange -interactive:true . Använd parametern för att åsidosätta ett värde som kommer från en svarsfil. |
-isolateProjects[:{True, MessageUponIsolationViolation, False}] -isolate[:{True, MessageUponIsolationViolation, False}] |
Gör att MSBuild skapar varje projekt isolerat. När värdet är inställt på MessageUponIsolationViolation (eller dess korta formulär Message ) serialiseras endast resultaten från de översta målen om -outputResultsCache växeln anges. Det här alternativet är att minska risken för att ett isoleringsöverträdande mål i ett beroendeprojekt använder felaktigt tillstånd på grund av dess beroende av ett cachelagrat mål vars biverkningar inte skulle beaktas. (Till exempel definitionen av en egenskap.) Det här läget är mer restriktivt eftersom det kräver att projektdiagrammet kan identifieras statiskt vid utvärderingstillfället, men kan förbättra schemaläggningen och minska minneskostnaderna när du skapar en stor uppsättning projekt. |
-lowPriority[:{True or False}] -low[:{True or False}] |
Gör att MSBuild körs med låg processprioritet. Att ange -lowPriority är detsamma som att ange -lowPriority:True . |
-maxCpuCount[:{number}] -m[:{number}] |
Anger det maximala antalet samtidiga processer som ska användas när du skapar. Om du inte tar med den här växeln är standardvärdet 1. Om du inkluderar den här växeln utan att ange ett värde använder MSBuild upp till antalet processorer i datorn. Mer information finns i Skapa flera projekt parallellt. I följande exempel instrueras MSBuild att skapa med hjälp av tre MSBuild-processer, vilket gör att tre projekt kan skapas samtidigt: msbuild myproject.proj -maxcpucount:3 |
-noAutoResponse -noautorsp |
Ta inte med några MSBuild.rsp- eller Directory.Build.rsp filer automatiskt. |
-nodeReuse:{value} -nr:{value} |
Aktivera eller inaktivera återanvändning av MSBuild-noder. Du kan ange följande värden: - True. Noder finns kvar när bygget har slutförts så att efterföljande versioner kan använda dem (standard). - False. Noder finns inte kvar när bygget har slutförts. En nod motsvarar ett projekt som körs. Om du inkluderar växeln -maxcpucount kan flera noder köras samtidigt. |
-nologo |
Visa inte startbanderollen eller upphovsrättsmeddelandet. |
-preprocess[:{filepath}]
-pp[:{filepath}] |
Skapa en enda, aggregerad projektfil genom att ange alla filer som skulle importeras under en version, med deras gränser markerade. Du kan använda den här växeln för att enklare avgöra vilka filer som importeras, varifrån filerna importeras och vilka filer som bidrar till bygget. När du använder den här växeln skapas inte projektet. Om du anger en filepath matas den aggregerade projektfilen ut till filen. Annars visas utdata i konsolfönstret.Information om hur du använder elementet Import för att infoga en projektfil i en annan projektfil finns i Import-element (MSBuild) och How to: Use the same target in multiple project files. |
-outputResultsCache[:{cacheFile}] -orc[:{cacheFile}] |
Utdatacachefil där MSBuild skriver innehållet i dess build-resultatcache i slutet av bygget. Om -isolateProjects är inställt på False anger det till True . |
profileEvaluation:{file} |
Profilerar MSBuild-utvärdering och skriver resultatet till den angivna filen. Om tillägget för den angivna filen är '.md', genereras resultatet i Markdown-format. I annat fall skapas en flikavgränsad fil. |
-property:{name}={value} -p:{name}={value} |
Ange eller åsidosätt de angivna egenskaperna på projektnivå, där name är egenskapsnamnet och value är egenskapsvärdet. Ange varje egenskap separat eller använd ett semikolon eller kommatecken för att separera flera egenskaper, som följande exempel visar:-property:WarningLevel=2;OutDir=bin\Debug Se Vanliga MSBuild-projektegenskaper för en lista över vanliga egenskaper. Den fullständiga uppsättningen tillgängliga egenskaper beror på projekttypen, SDK och importerade filer. |
-restore -r |
Kör det Restore målet innan de faktiska målen skapas. |
-restoreProperty:{name}={value} -rp:{name}={value} |
Ange eller åsidosätt endast dessa egenskaper på projektnivå under återställningen och använd inte egenskaper som angetts med argumentet -property .
name är egenskapsnamnet och value är egenskapsvärdet. Använd ett semikolon eller kommatecken för att separera flera egenskaper eller ange varje egenskap separat. |
-target:{targets} -t:{targets} |
Skapa de angivna målen i projektet. Ange varje mål separat, eller använd ett semikolon eller kommatecken för att separera flera mål, som följande exempel visar:-target:PrepareResources;Compile Om du anger några mål med den här växeln körs de i stället för mål i attributet DefaultTargets i projektfilen. Mer information finns i Målversionsordning och Så här: Ange vilket mål som ska skapas först.Ett mål är en grupp med uppgifter. Mer information finns i Targets. |
-targets[:{file}] -ts[:{file}] |
Skriv listan över tillgängliga mål till den angivna filen (eller utdataenheten, om ingen fil har angetts), utan att köra byggprocessen. |
-toolsVersion:{version} -tv:{version} |
Anger en anpassad verktygsuppsättning. En verktygsuppsättning består av uppgifter, mål och verktyg som används för att skapa ett program. Se Toolset (ToolsVersion)- och Standard- och anpassade verktygsuppsättningskonfigurationer. |
-validate:[{schema}] -val[{schema}] |
Verifiera projektfilen och skapa projektet om valideringen lyckas. Om du inte anger schema verifieras projektet mot standardschemat.Om du anger schema verifieras projektet mot det schema som du anger.Följande inställning är ett exempel: -validate:MyExtendedBuildSchema.xsd |
-verbosity:{level} -v:{level} |
Anger mängden information som ska visas i byggloggen. Varje logger visar händelser baserat på den verbositetsnivå som du har angett för den loggern. Du kan ange följande utförlighetsnivåer: q[uiet] , m[inimal] , n[ormal] (standard), d[etailed] och diag[nostic] .Följande inställning är ett exempel: -verbosity:quiet |
-version -ver |
Visa endast versionsinformation. Projektet har inte skapats. |
@{file} |
Infoga kommandoradsväxlar från en textfil. Om du har flera filer anger du dem separat. Mer information finns i Svarsfiler. |
-warnAsError[:{code; ...}] -err[:{code; ...}] |
Lista över varningskoder som ska behandlas som fel. Använd semikolon eller kommatecken för att separera flera varningskoder. Om du vill behandla alla varningar som fel använder du växeln utan värden. När en varning behandlas som ett fel fortsätter målet att köras som om det var en varning, men den övergripande versionen misslyckas. Exempel: -err:MSB4130 |
-warnNotAsError[:{code; ...}] -noerr[:{code; ...}] |
MSBuild 17.0 och senare. Lista över varningskoder som inte bör höjas till fel. Mer specifikt, om växeln warnAsError är inställd på att höja upp alla varningar till fel, höjs inte felkoder som anges med warnNotAsError upp. Detta har ingen effekt om warnAsError inte är inställt på att höja upp alla varningar till fel. Använd semikolon eller kommatecken för att separera flera varningskoder. Exempel: -noerr:MSB4130 |
-warnAsMessage[:{code}; ...}] -noWarn[:{code; ...}] |
Lista över varningskoder som ska behandlas som meddelanden med låg prioritet. Använd semikolon eller kommatecken för att separera flera varningskoder. Exempel: -noWarn:MSB3026 |
Växlar för loggare
Strömbrytare | Beskrivning |
---|---|
-binaryLogger[:[LogFile=]{output.binlog} [;ProjectImports=None ,Embed ,ZipFile]] -bl[:[LogFile=]{output.binlog} [;ProjectImports=None ,Embed ,ZipFile]] |
Serialiserar alla bygghändelser till en komprimerad binär fil. Som standard finns filen i den aktuella katalogen och heter msbuild.binlog. Binärloggen är en detaljerad beskrivning av byggprocessen som senare kan användas för att rekonstruera textloggar och användas av andra analysverktyg. En binär logg är vanligtvis 10–20 x mindre än den mest detaljerade textdiagnostiknivåloggen, men den innehåller mer information. Den binära loggern samlar som standard in källtexten för projektfiler, inklusive alla importerade projekt och målfiler som påträffades under bygget. Den valfria parametern ProjectImports styr det här beteendet:- ProjectImports=None. Samla inte in projektimporterna. - ProjectImports=Embed. Bädda in projektimporter i loggfilen (standard). - ProjectImports=ZipFile. Spara projektfiler till {output}.projectimports.zip där <utdata> är samma namn som namnet på den binära loggfilen. Standardinställningen för ProjectImports är Bädda in. Note: loggern samlar inte in icke-MSBuild-källfiler som .cs , .cpp och så vidare.En .binlog fil kan "spelas upp" genom att skicka den till msbuild.exe som ett argument i stället för ett projekt/en lösning. Andra loggare får informationen i loggfilen som om den ursprungliga versionen skulle ske. Du kan läsa mer om binärloggen och dess användning på: https://github.com/dotnet/msbuild/blob/main/documentation/wiki/Binary-Log.md Exempel: - -bl - -bl:output.binlog - -bl:output.binlog;ProjectImports=None - -bl:output.binlog;ProjectImports=ZipFile - -bl:..\..\custom.binlog - -binaryLogger |
-consoleLoggerParameters:{parameters} -clp:{parameters} |
Skicka de parametrar som du anger till konsolloggaren, som visar bygginformation i konsolfönstret. Du kan ange följande parametrar: - PerformanceSummary. Visa den tid som ägnas åt aktiviteter, mål och projekt. - Sammanfattning. Visa fel- och varningssammanfattningen i slutet. - NoSummary. Visa inte fel- och varningssammanfattningen i slutet. - ErrorsOnly. Visa endast fel. - WarningsOnly. Visa endast varningar. - NoItemAndPropertyList. Visa inte listan över objekt och egenskaper som visas i början av varje projektversion om verbositetsnivån är inställd på diagnostic .- ShowCommandLine. Visa TaskCommandLineEvent meddelanden.- ShowProjectFile. Visa sökvägen till projektfilen i diagnostikmeddelanden. Den här inställningen är aktiverad som standard. - ShowTimestamp. Visa tidsstämpeln som ett prefix för alla meddelanden. - ShowEventId. Visa händelse-ID för varje startad händelse, slutförd händelse och meddelande. - ForceNoAlign. Justera inte texten efter storleken på konsolbufferten. - DisableConsoleColor. Använd standardkonsolfärgerna för alla loggningsmeddelanden. - DisableMPLogging. Inaktivera loggningsformatet för flera processorer vid körning i icke-multiprocessorläge. - EnableMPLogging. Aktivera loggningsformatet för flera processorer även när det körs i icke-multiprocessorläge. Det här loggningsformatet är aktiverat som standard. - ForceConsoleColor. Använd ANSI-konsolfärger även om konsolen inte stöder det. - utförlighet. Åsidosätt inställningen -verbosity för den här loggaren.Använd ett semikolon för att separera flera parametrar, som följande exempel visar: -consoleLoggerParameters:PerformanceSummary;NoSummary -verbosity:minimal Standardkonsolloggaren är i normal detaljnivå och innehåller en Summary . |
-distributedFileLogger -dfl |
Logga build-utdata för varje MSBuild-nod till en egen fil. Den första platsen för dessa filer är den aktuella katalogen. Som standard heter filerna MSBuild{NodeId}.log. Du kan använda växeln -fileLoggerParameters för att ange platsen för filerna och andra parametrar för fileLogger.Om du namnger en loggfil med hjälp av växeln -fileLoggerParameters använder den distribuerade loggaren det namnet som en mall och lägger till nod-ID:t i det namnet när du skapar en loggfil för varje nod. |
-distributedLogger:{central logger},{forwarding logger}, ... -dl:{central logger},{forwarding logger, ...} |
Logga händelser från MSBuild och koppla en annan loggningsinstans till varje nod. Om du vill ange flera loggare anger du varje loggning separat. Du använder loggningssyntaxen för att ange en loggning, förutom att du anger och ytterligare klass för vidarebefordranloggaren. Information om loggningssyntaxen finns i växeln -logger .I följande exempel visas hur du använder den här växeln: -dl:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral -dl:MyLogger,C:\My.dll*ForwardingLogger,C:\Logger.dll |
-fileLogger[{number}] -fl[{number}] |
Logga byggutdata till en enda fil i den aktuella katalogen. Om du inte anger number heter utdatafilen msbuild.log. Om du anger number heter utdatafilen msbuild<n>.log, där <n> är number .
Number kan vara en siffra från 1 till 9.Du kan använda växeln -fileLoggerParameters för att ange platsen för filen och andra parametrar för fileLogger. |
-fileLoggerParameters[{number}]: parameters -flp[{number}]: {parameters} |
Anger eventuella extra parametrar för filloggaren och den distribuerade filloggaren. Förekomsten av den här växeln innebär att motsvarande -filelogger[number] växel finns.
Number kan vara en siffra från 1 till 9.Du kan använda alla parametrar som anges för -consoleloggerparameters . Du kan också använda en eller flera av följande parametrar:- LogFile. Sökvägen till loggfilen som byggloggen skrivs till. Den distribuerade filloggaren prefixar den här sökvägen till namnen på dess loggfiler. - Lägg till. Avgör om byggloggen läggs till i loggfilen eller skriver över den. När du anger växeln läggs byggloggen till i loggfilen. När växeln inte finns skrivs innehållet i en befintlig loggfil över. Exempel: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log;append Om du inkluderar en explicit true - eller false inställning läggs loggen till oavsett inställning. Om du inte inkluderar tilläggsväxeln skrivs loggen över.I det här fallet skrivs filen över: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log I det här fallet läggs filen till: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log;append=true I det här fallet läggs filen till: msbuild myfile.proj -flp:FileLogger,Microsoft.Build;logfile=MyLog.log;append=false - Kodning. Anger kodningen för filen (till exempel UTF-8, Unicode eller ASCII). I följande exempel genereras separata loggfiler för varningar och fel: -flp1:logfile=errors.txt;errorsonly -flp2:logfile=warnings.txt;warningsonly Följande exempel visar andra möjligheter: -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 |
Anger den loggning som ska användas för att logga händelser från MSBuild. Om du vill ange flera loggare anger du varje loggning separat. Använd följande syntax för logger : [LoggerClass,]LoggerAssembly[;LoggerParameters] Använd följande syntax för LoggerClass : [PartialOrFullNamespace.]LoggerClassName Du behöver inte ange loggningsklassen om sammansättningen innehåller exakt en logger. Använd följande syntax för LoggerAssembly : AssemblyName[,StrongName] \| AssemblyFile Loggningsparametrar är valfria och skickas till loggaren exakt när du anger dem. I följande exempel används växeln -logger .-logger:XMLLogger,MyLogger,Version=1.0.2,Culture=neutral -logger:XMLLogger,C:\Loggers\MyLogger.dll;OutputAsHTML |
-noConsoleLogger -noconlog |
Inaktivera standardkonsolloggaren och logga inte händelser till konsolen. |
-terminalLogger[:auto ,on ,off] -tl[:auto ,on ,off] |
Aktivera eller inaktivera terminallogger. Terminallogger ger förbättrade byggutdata i konsolen i realtid, ordnade logiskt efter projekt och utformade för att markera användbar information. Ange auto (eller använd alternativet utan argument) för att endast använda terminalloggaren om standardutdata inte omdirigeras. Parsa inte utdata eller förlita dig på att det förblir oförändrat i framtida versioner. Det här alternativet är tillgängligt i MSBuild 17.8 och senare. |
Exempel
I följande exempel skapas rebuild
mål för projektet MyProject.proj.
MSBuild.exe MyProject.proj -t:rebuild