dotnet-körning
Den här artikeln gäller för: ✔️ .NET Core 3.1 SDK och senare versioner
Name
dotnet run
– Kör källkod utan några explicita kompilerings- eller startkommandon.
Sammanfattning
dotnet run [-a|--arch <ARCHITECTURE>] [-c|--configuration <CONFIGURATION>]
[-f|--framework <FRAMEWORK>] [--force] [--interactive]
[--launch-profile <NAME>] [--no-build]
[--no-dependencies] [--no-launch-profile] [--no-restore]
[--os <OS>] [--project <PATH>] [-r|--runtime <RUNTIME_IDENTIFIER>]
[--tl:[auto|on|off]] [-v|--verbosity <LEVEL>]
[[--] [application arguments]]
dotnet run -h|--help
beskrivning
Kommandot dotnet run
ger ett praktiskt alternativ för att köra programmet från källkoden med ett kommando. Det är användbart för snabb iterativ utveckling från kommandoraden. Kommandot är beroende av kommandot dotnet build
för att skapa koden. Alla krav för bygget gäller även för dotnet run
.
Kommentar
dotnet run
respekterar inte argument som /property:property=value
, som respekteras av dotnet build
.
Utdatafiler skrivs till standardplatsen, som är bin/<configuration>/<target>
. Om du till exempel har ett netcoreapp2.1
program och kör dotnet run
placeras utdata i bin/Debug/netcoreapp2.1
. Filer skrivs över efter behov. Temporära filer placeras i obj
katalogen.
Om projektet anger flera ramverk resulterar körningen dotnet run
i ett fel om inte -f|--framework <FRAMEWORK>
alternativet används för att ange ramverket.
Kommandot dotnet run
används i kontexten för projekt, inte i byggda sammansättningar. Om du försöker köra en ramverksberoende program-DLL i stället måste du använda dotnet utan kommando. Om du till exempel vill köra myapp.dll
använder du:
dotnet myapp.dll
Mer information om drivrutinen finns i dotnet
cli-ämnet (.NET Command Line Tools).
För att köra programmet dotnet run
löser kommandot beroendena för programmet som ligger utanför den delade körningen från NuGet-cachen. Eftersom den använder cachelagrade beroenden rekommenderar vi inte att du använder dotnet run
för att köra program i produktion. Skapa i stället en distribution med kommandot dotnet publish
och distribuera de publicerade utdata.
Implicit återställning
Du behöver inte köra dotnet restore
eftersom den körs implicit av alla kommandon som kräver en återställning, till exempel dotnet new
, dotnet build
, dotnet run
, dotnet test
, dotnet publish
och dotnet pack
. Om du vill inaktivera implicit återställning använder du alternativet --no-restore
.
Kommandot dotnet restore
är fortfarande användbart i vissa scenarier där det är meningsfullt att uttryckligen återställa, till exempel kontinuerliga integreringsversioner i Azure DevOps Services eller i byggsystem som uttryckligen behöver styra när återställningen sker.
Information om hur du hanterar NuGet-feeds finns i dokumentationendotnet restore
.
Det här kommandot stöder alternativen dotnet restore
när det skickas i det långa formuläret (till exempel --source
). Korta formuläralternativ, till exempel -s
, stöds inte.
Nedladdningar av arbetsbelastningsmanifest
När du kör det här kommandot initieras en asynkron bakgrundsnedladdning av annonseringsmanifest för arbetsbelastningar. Om nedladdningen fortfarande körs när det här kommandot är klart stoppas nedladdningen. Mer information finns i Annonseringsmanifest.
Alternativ
--
Avgränsar argument till
dotnet run
från argument för programmet som körs. Alla argument efter att den här avgränsare har skickats till programkörningen.
-a|--arch <ARCHITECTURE>
Anger målarkitekturen. Det här är en kortsyntax för att ange Körtidsidentifierare (RID) där det angivna värdet kombineras med standard-RID. På en
win-x64
dator anger du--arch x86
till exempel RID tillwin-x86
. Om du använder det här alternativet ska du inte använda alternativet-r|--runtime
. Tillgänglig sedan .NET 6 Förhandsversion 7.
-c|--configuration <CONFIGURATION>
Definierar byggkonfigurationen. Standardvärdet för de flesta projekt är
Debug
, men du kan åsidosätta konfigurationsinställningarna för bygget i projektet.
-f|--framework <FRAMEWORK>
Skapar och kör appen med det angivna ramverket. Ramverket måste anges i projektfilen.
--force
Tvingar alla beroenden att lösas även om den senaste återställningen lyckades. Att ange den här flaggan är detsamma som att ta bort project.assets.json-filen.
-?|-h|--help
Skriver ut en beskrivning av hur du använder kommandot.
--interactive
Tillåter att kommandot stoppar och väntar på användarens indata eller åtgärd. Till exempel för att slutföra autentiseringen. Tillgänglig sedan .NET Core 3.0 SDK.
--launch-profile <NAME>
Namnet på den startprofil (om någon) som ska användas när programmet startas. Startprofiler definieras i filen launchSettings.json och kallas
Development
vanligtvis ,Staging
ochProduction
. Mer information finns i Arbeta med flera miljöer.--no-build
Skapar inte projektet innan det körs. Den anger
--no-restore
också implicit flaggan.--no-dependencies
När du återställer ett projekt med P2P-referenser (project-to-project) återställer rotprojektet och inte referenserna.
--no-launch-profile
Försöker inte använda launchSettings.json för att konfigurera programmet.
--no-restore
Kör inte en implicit återställning när kommandot körs.
--os <OS>
Anger måloperativsystemet (OS). Det här är en kortsyntax för att ange Körtidsidentifierare (RID) där det angivna värdet kombineras med standard-RID. På en
win-x64
dator anger du--os linux
till exempel RID tilllinux-x64
. Om du använder det här alternativet ska du inte använda alternativet-r|--runtime
. Tillgänglig sedan .NET 6.
--project <PATH>
Anger sökvägen till projektfilen som ska köras (mappnamn eller fullständig sökväg). Om det inte anges används den aktuella katalogen som standard.
Förkortningen
-p
för--project
är inaktuell från och med .NET 6 SDK. Under en begränsad tid från och med .NET 6 RC1 SDK-p
kan fortfarande användas för--project
trots utfasningsvarningen. Om argumentet som anges för alternativet inte innehåller=
accepterar-p
kommandot som en förkortning för--project
. Annars förutsätter kommandot att det-p
är en förkortning för--property
. Den här flexibla användningen av-p
for--project
fasas ut i .NET 7.--property:<NAME>=<VALUE>
Anger en eller flera MSBuild-egenskaper. Ange flera egenskaper avgränsade med semikolon eller genom att upprepa alternativet:
--property:<NAME1>=<VALUE1>;<NAME2>=<VALUE2> --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
Det korta formuläret
-p
kan användas för--property
. Om argumentet som anges för alternativet innehåller , accepteras=
-p
som en förkortning för--property
. Annars förutsätter kommandot att det-p
är en förkortning för--project
.Om du vill skicka
--property
till programmet i stället för att ange en MSBuild-egenskap anger du alternativet efter--
syntaxavgränsaren, till exempel:dotnet run -- --property name=value
-r|--runtime <RUNTIME_IDENTIFIER>
Anger den målkörning som paketen ska återställas för. En lista över Runtime-identifierare (RID) finns i RID-katalogen.
--tl:[auto|on|off]
Anger om terminalloggaren ska användas för byggutdata. Standardvärdet är
auto
, som först verifierar miljön innan du aktiverar terminalloggning. Miljökontrollen verifierar att terminalen kan använda moderna utdatafunktioner och inte använder en omdirigerad standardutdata innan den nya loggaren aktiveras.on
hoppar över miljökontrollen och aktiverar terminalloggning.off
hoppar över miljökontrollen och använder standardkonsolloggaren.Terminalloggaren visar återställningsfasen följt av byggfasen. Under varje fas visas de pågående byggprojekten längst ned i terminalen. Varje projekt som skapar utdata både det MSBuild-mål som för närvarande skapas och hur lång tid som spenderas på det målet. Du kan söka efter den här informationen om du vill veta mer om bygget. När ett projekt är färdigt skrivs ett enda "build completed"-avsnitt som samlar in:
- Namnet på det skapade projektet.
- Målramverket (om det är flera mål).
- Status för bygget.
- Den primära utdatan för den versionen (som är hyperlänkad).
- Diagnostik som genereras för projektet.
Det här alternativet är tillgängligt från och med .NET 8.
-v|--verbosity <LEVEL>
Anger kommandots verbositetsnivå. Tillåtna värden är
q[uiet]
,m[inimal]
,n[ormal]
,d[etailed]
ochdiag[nostic]
. Standardvärdet ärminimal
. Mer information finns i LoggerVerbosity.
Exempel
Kör projektet i den aktuella katalogen:
dotnet run
Kör det angivna projektet:
dotnet run --project ./projects/proj1/proj1.csproj
Kör projektet i den aktuella katalogen och ange Versionskonfiguration:
dotnet run --property:Configuration=Release
Kör projektet i den aktuella katalogen (
--help
argumentet i det här exemplet skickas till programmet eftersom det tomma--
alternativet används):dotnet run --configuration Release -- --help
Återställ beroenden och verktyg för projektet i den aktuella katalogen som bara visar minimala utdata och kör sedan projektet:
dotnet run --verbosity m