dotnet-uitvoering
Dit artikel is van toepassing op: ✔️ .NET Core 3.1 SDK en latere versies
dotnet run
- De broncode wordt uitgevoerd zonder expliciete compileer- of startopdrachten.
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
De dotnet run
opdracht biedt een handige optie om uw toepassing uit te voeren vanuit de broncode met één opdracht. Het is handig voor snelle iteratieve ontwikkeling vanaf de opdrachtregel. De opdracht is afhankelijk van de dotnet build
opdracht om de code te bouwen. Alle vereisten voor de build zijn ook van toepassing dotnet run
.
Notitie
dotnet run
respecteert geen argumenten zoals /property:property=value
, die worden gerespecteerd door dotnet build
.
Uitvoerbestanden worden naar de standaardlocatie geschreven.bin/<configuration>/<target>
Als u bijvoorbeeld een netcoreapp2.1
toepassing hebt en u uitvoert dotnet run
, wordt de uitvoer geplaatst in bin/Debug/netcoreapp2.1
. Bestanden worden naar behoefte overschreven. Tijdelijke bestanden worden in de obj
map geplaatst.
Als in het project meerdere frameworks worden opgegeven, resulteert het uitvoeren van dotnet run
een fout, tenzij de -f|--framework <FRAMEWORK>
optie wordt gebruikt om het framework op te geven.
De dotnet run
opdracht wordt gebruikt in de context van projecten, niet ingebouwde assembly's. Als u in plaats daarvan een frameworkafhankelijke toepassings-DLL probeert uit te voeren, moet u dotnet zonder opdracht gebruiken. Als u bijvoorbeeld wilt uitvoeren myapp.dll
, gebruikt u:
dotnet myapp.dll
Zie het onderwerp .NET Opdrachtregelprogramma's (CLI) voor meer informatie over het dotnet
stuurprogramma.
Als u de toepassing wilt uitvoeren, worden met de dotnet run
opdracht de afhankelijkheden van de toepassing die zich buiten de gedeelde runtime bevinden, omgezet vanuit de NuGet-cache. Omdat er gebruik wordt gemaakt van afhankelijkheden in de cache, wordt het afgeraden om toepassingen in productie uit te dotnet run
voeren. Maak in plaats daarvan een implementatie met behulp van de dotnet publish
opdracht en implementeer de gepubliceerde uitvoer.
U hoeft niet uit te voeren dotnet restore
omdat deze impliciet wordt uitgevoerd door alle opdrachten waarvoor een herstelbewerking moet worden uitgevoerd, zoals dotnet new
, dotnet build
, , dotnet run
, dotnet test
, , en dotnet publish
.dotnet pack
Als u impliciete herstel wilt uitschakelen, gebruikt u de --no-restore
optie.
De dotnet restore
opdracht is nog steeds nuttig in bepaalde scenario's waarbij het expliciet herstellen zinvol is, zoals builds voor continue integratie in Azure DevOps Services of in buildsystemen die expliciet moeten worden beheerd wanneer de herstelbewerking plaatsvindt.
Zie de dotnet restore
documentatie voor informatie over het beheren van NuGet-feeds.
Deze opdracht ondersteunt de dotnet restore
opties die worden doorgegeven in het lange formulier (bijvoorbeeld --source
). Korte formulieropties, zoals -s
, worden niet ondersteund.
Wanneer u deze opdracht uitvoert, wordt er een asynchrone achtergronddownload van reclamemanifesten voor workloads gestart. Als het downloaden nog steeds wordt uitgevoerd wanneer deze opdracht is voltooid, wordt het downloaden gestopt. Zie Reclamemanifesten voor meer informatie.
--
Hiermee worden argumenten gescheiden van
dotnet run
argumenten voor de toepassing die wordt uitgevoerd. Alle argumenten na dit scheidingsteken worden doorgegeven aan de uitvoering van de toepassing.
-a|--arch <ARCHITECTURE>
Hiermee geeft u de doelarchitectuur. Dit is een verkorte syntaxis voor het instellen van de Runtime-id (RID), waarbij de opgegeven waarde wordt gecombineerd met de standaard-RID. Als u bijvoorbeeld op een
win-x64
computer opgeeft--arch x86
, wordt de RID ingesteld opwin-x86
. Als u deze optie gebruikt, gebruikt u de-r|--runtime
optie niet. Beschikbaar sinds .NET 6 Preview 7.
-c|--configuration <CONFIGURATION>
Definieert de buildconfiguratie. De standaardinstelling voor de meeste projecten is
Debug
, maar u kunt de buildconfiguratie-instellingen in uw project overschrijven.
-f|--framework <FRAMEWORK>
Hiermee wordt de app gebouwd en uitgevoerd met behulp van het opgegeven framework. Het framework moet worden opgegeven in het projectbestand.
--force
Hiermee worden alle afhankelijkheden gedwongen om te worden opgelost, zelfs als de laatste herstelbewerking is geslaagd. Het opgeven van deze vlag is hetzelfde als het verwijderen van het project.assets.json bestand.
-?|-h|--help
Hiermee wordt een beschrijving afgedrukt van het gebruik van de opdracht.
--interactive
Hiermee kan de opdracht stoppen en wachten op invoer of actie van de gebruiker. Bijvoorbeeld om de verificatie te voltooien. Beschikbaar sinds .NET Core 3.0 SDK.
--launch-profile <NAME>
De naam van het startprofiel (indien van toepassing) dat moet worden gebruikt bij het starten van de toepassing. Startprofielen worden gedefinieerd in het launchSettings.json-bestand en worden meestal genoemd
Development
,Staging
enProduction
. Zie Werken met meerdere omgevingen voor meer informatie.--no-build
Het project wordt niet gebouwd voordat het wordt uitgevoerd. De vlag wordt ook impliciet ingesteld
--no-restore
.--no-dependencies
Wanneer u een project herstelt met P2P-verwijzingen (project-to-project), herstelt u het hoofdproject en niet de verwijzingen.
--no-launch-profile
Er wordt niet geprobeerd launchSettings.json te gebruiken om de toepassing te configureren.
--no-restore
Voert geen impliciete herstelbewerking uit bij het uitvoeren van de opdracht.
--os <OS>
Hiermee geeft u het doelbesturingssysteem (OS). Dit is een verkorte syntaxis voor het instellen van de Runtime-id (RID), waarbij de opgegeven waarde wordt gecombineerd met de standaard-RID. Als u bijvoorbeeld op een
win-x64
computer opgeeft--os linux
, wordt de RID ingesteld oplinux-x64
. Als u deze optie gebruikt, gebruikt u de-r|--runtime
optie niet. Beschikbaar sinds .NET 6.
--project <PATH>
Hiermee geeft u het pad van het projectbestand dat moet worden uitgevoerd (mapnaam of volledig pad). Als dit niet is opgegeven, wordt deze standaard ingesteld op de huidige map.
De
-p
afkorting voor--project
wordt afgeschaft vanaf .NET 6 SDK. Voor een beperkte tijd die begint in .NET 6 RC1 SDK,-p
kan nog steeds worden gebruikt voor--project
ondanks de afschaffingswaarschuwing. Als het argument dat is opgegeven voor de optie niet bevat=
, accepteert-p
de opdracht als kort voor--project
. Anders wordt ervan uitgegaan dat dit-p
een afkorting is voor--property
. Dit flexibele gebruik van-p
voor--project
zal worden uitgefaseerd in .NET 7.--property:<NAME>=<VALUE>
Hiermee stelt u een of meer MSBuild-eigenschappen in. Geef meerdere eigenschappen op die zijn gescheiden door puntkomma's of door de optie te herhalen:
.NET CLI--property:<NAME1>=<VALUE1>;<NAME2>=<VALUE2> --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
De korte vorm
-p
kan worden gebruikt voor--property
. Als het argument dat voor de optie is=
opgegeven,-p
wordt geaccepteerd als kort voor--property
. Anders wordt ervan uitgegaan dat dit-p
een afkorting is voor--project
.Als u wilt doorgeven
--property
aan de toepassing in plaats van een MSBuild-eigenschap in te stellen, geeft u de optie op na het--
syntaxisscheidingsteken, bijvoorbeeld:.NET CLIdotnet run -- --property name=value
-r|--runtime <RUNTIME_IDENTIFIER>
Hiermee geeft u de doelruntime op waarvoor pakketten moeten worden hersteld. Zie de RID-catalogus voor een lijst met runtime-id's (RID's).
--tl:[auto|on|off]
Hiermee geeft u op of de terminallogger moet worden gebruikt voor de build-uitvoer. De standaardwaarde is
auto
, waarmee eerst de omgeving wordt geverifieerd voordat u terminallogboekregistratie inschakelt. De omgevingscontrole controleert of de terminal in staat is moderne uitvoerfuncties te gebruiken en geen omgeleide standaarduitvoer gebruikt voordat de nieuwe logger wordt ingeschakeld.on
slaat de omgevingscontrole over en schakelt terminallogboekregistratie in.off
slaat de omgevingscontrole over en maakt gebruik van de standaardconsolelogger.De terminallogger toont u de herstelfase, gevolgd door de buildfase. Tijdens elke fase worden de huidige bouwprojecten onderaan de terminal weergegeven. Elk project dat wordt gebouwd, levert zowel het MSBuild-doel dat momenteel wordt gebouwd als de hoeveelheid tijd die aan dat doel is besteed. U kunt deze informatie doorzoeken voor meer informatie over de build. Wanneer een project klaar is met bouwen, wordt één sectie 'build completed' geschreven die het volgende vastlegt:
- De naam van het gebouwde project.
- Het doelframework (indien multi-targeted).
- De status van die build.
- De primaire uitvoer van die build (die is hyperlinked).
- Diagnostische gegevens die voor dat project worden gegenereerd.
Deze optie is beschikbaar vanaf .NET 8.
-v|--verbosity <LEVEL>
Hiermee stelt u het uitgebreidheidsniveau van de opdracht in. Toegestane waarden zijn
q[uiet]
, , ,n[ormal]
endiag[nostic]
d[etailed]
m[inimal]
. De standaardwaarde isminimal
. Zie LoggerVerbosity voor meer informatie.
Voer het project uit in de huidige map:
.NET CLIdotnet run
Voer het opgegeven project uit:
.NET CLIdotnet run --project ./projects/proj1/proj1.csproj
Voer het project uit in de huidige map en geef de releaseconfiguratie op:
.NET CLIdotnet run --property:Configuration=Release
Voer het project uit in de huidige map (het
--help
argument in dit voorbeeld wordt doorgegeven aan de toepassing, omdat de lege--
optie wordt gebruikt):.NET CLIdotnet run --configuration Release -- --help
Herstel afhankelijkheden en hulpprogramma's voor het project in de huidige map alleen met minimale uitvoer en voer vervolgens het project uit:
.NET CLIdotnet run --verbosity m
.NET-feedback
.NET is een open source project. Selecteer een koppeling om feedback te geven: