Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Dit artikel is van toepassing op: ✔️ .NET 6 SDK en latere versies
Naam
dotnet run - De broncode wordt uitgevoerd zonder expliciete compileer- of startopdrachten.
Samenvatting
dotnet run [<applicationArguments>]
[-a|--arch <ARCHITECTURE>] [--artifacts-path <ARTIFACTS_DIR>]
[-c|--configuration <CONFIGURATION>] [-e|--environment <KEY=VALUE>]
[--file <FILE_PATH>] [-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
Beschrijving
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 dotnet voor meer informatie over het 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.
Impliciete herstelbewerking
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.
Downloads van workloadmanifesten
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.
Arguments
<applicationArguments>
Argumenten die worden doorgegeven aan de toepassing die wordt uitgevoerd.
Argumenten die niet worden herkend door dotnet run , worden doorgegeven aan de toepassing. Als u argumenten wilt dotnet run scheiden van argumenten voor de toepassing, gebruikt u de -- optie.
Opties
--Hiermee worden argumenten gescheiden van
dotnet runargumenten 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-x64computer opgeeft--arch x86, wordt de RID ingesteld opwin-x86. Als u deze optie gebruikt, gebruikt u de-r|--runtimeoptie niet. Beschikbaar sinds .NET 6 Preview 7.
--artifacts-path <ARTIFACTS_DIR>Alle builduitvoerbestanden van de uitgevoerde opdracht worden weergegeven in submappen onder het opgegeven pad, gescheiden door project. Zie De indeling Artefacten-uitvoer voor meer informatie. Beschikbaar sinds .NET 8 SDK.
-c|--configuration <CONFIGURATION>Definieert de buildconfiguratie. De standaardinstelling voor de meeste projecten is
Debug, maar u kunt de buildconfiguratie-instellingen in uw project overschrijven.
--disable-build-serversHiermee wordt de opdracht gedwongen om permanente buildservers te negeren. Deze optie biedt een consistente manier om al het gebruik van buildcaching uit te schakelen, waardoor een volledig nieuwe build wordt afgemaakt. Een build die niet afhankelijk is van caches is handig wanneer de caches om een of andere reden beschadigd of onjuist zijn. Beschikbaar sinds .NET 7 SDK.
-e|--environment <KEY=VALUE>Hiermee stelt u de opgegeven omgevingsvariabele in het proces in dat door de opdracht wordt uitgevoerd. De opgegeven omgevingsvariabele wordt niet toegepast op het
dotnet runproces.Omgevingsvariabelen die via deze optie worden doorgegeven, hebben voorrang op omgevingsvariabelen, System.CommandLine-instructies
envenenvironmentVariablesvanuit het gekozen startprofiel. Zie Omgevingsvariabelen voor meer informatie.(Deze optie is toegevoegd in .NET SDK 9.0.200.)
-f|--framework <FRAMEWORK>Hiermee wordt de app gebouwd en uitgevoerd met behulp van het opgegeven framework. Het framework moet worden opgegeven in het projectbestand.
--file <FILE_PATH>Het pad naar de op bestanden gebaseerde app die moet worden uitgevoerd. Als er geen pad is opgegeven, wordt de huidige map gebruikt om het bestand te zoeken en uit te voeren. Zie C#-apps bouwen voor meer informatie over op bestanden gebaseerde apps.
Op Unix kunt u apps op basis van bestanden rechtstreeks uitvoeren met behulp van de naam van het bronbestand op de opdrachtregel in plaats van
dotnet run. Controleer eerst of het bestand machtigingen voor het uitvoeren heeft. Voeg vervolgens een shebang-regel#!toe als de eerste regel van het bestand, bijvoorbeeld:#!/usr/bin/env dotnet runVervolgens kunt u het bestand rechtstreeks vanaf de opdrachtregel uitvoeren:
./ConsoleApp.csGeïntroduceerd in .NET SDK 10.0.100.
--forceHiermee 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.
--interactiveHiermee 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,StagingenProduction. Zie Werken met meerdere omgevingen voor meer informatie.--no-buildHet project wordt niet gebouwd voordat het wordt uitgevoerd. De vlag wordt ook impliciet ingesteld
--no-restore.--no-cacheSla up-to-date controles over en bouw het programma altijd voordat u het uitvoert.
--no-dependenciesWanneer u een project herstelt met P2P-verwijzingen (project-to-project), herstelt u het hoofdproject en niet de verwijzingen.
--no-launch-profileEr wordt niet geprobeerd launchSettings.json te gebruiken om de toepassing te configureren.
--no-restoreVoert geen impliciete herstelbewerking uit bij het uitvoeren van de opdracht.
--no-self-containedPubliceer uw toepassing als een frameworkafhankelijke toepassing. Er moet een compatibele .NET-runtime worden geïnstalleerd op de doelcomputer om uw toepassing uit te voeren.
--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-x64computer opgeeft--os linux, wordt de RID ingesteld oplinux-x64. Als u deze optie gebruikt, gebruikt u de-r|--runtimeoptie 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
-pafkorting voor--projectwordt afgeschaft vanaf .NET 6 SDK. Gedurende een beperkte tijd-pkan nog steeds worden gebruikt voor--projectondanks de afschaffingswaarschuwing. Als het argument dat is opgegeven voor de optie niet bevat=, accepteert-pde opdracht als kort voor--project. Anders wordt ervan uitgegaan dat dit-peen afkorting is voor--property. Dit flexibele gebruik van-pvoor--projectzal 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:
--property:<NAME1>=<VALUE1>;<NAME2>=<VALUE2> --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>De korte vorm
-pkan worden gebruikt voor--property. Als het argument dat voor de optie is=opgegeven,-pwordt geaccepteerd als kort voor--property. Anders wordt ervan uitgegaan dat dit-peen afkorting is voor--project.Als u wilt doorgeven
--propertyaan de toepassing in plaats van een MSBuild-eigenschap in te stellen, geeft u de optie op na het--syntaxisscheidingsteken, bijvoorbeeld:dotnet 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).
-sc|--self-containedHiermee publiceert u de .NET-runtime met uw toepassing, zodat de runtime niet hoeft te worden geïnstalleerd op het doelsysteem. De standaardwaarde is
false. Bij het instellen van .NET 7 of lager is de standaardwaardetrueechter als er een runtime-id is opgegeven.
--tl:[auto|on|off]Hiermee geeft u op of Terminal Logger 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.onslaat de omgevingscontrole over en schakelt terminallogboekregistratie in.offslaat de omgevingscontrole over en maakt gebruik van de standaardconsolelogger.Terminal Logger toont 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], , ,m[inimal]enn[ormal]d[etailed]diag[nostic]. De standaardwaarde isminimal. Zie LoggerVerbosity voor meer informatie.
-?|-h|--helpHiermee wordt een beschrijving afgedrukt van het gebruik van de opdracht.
Omgevingsvariabelen
Er zijn vier mechanismen waarmee omgevingsvariabelen kunnen worden toegepast op de gestarte toepassing:
- Omgevingsomgevingsvariabelen van het besturingssysteem wanneer de opdracht wordt uitgevoerd.
- System.CommandLine-instructies
env, zoals[env:key=value]. Deze zijn van toepassing op het heledotnet runproces, niet alleen op het project dat wordt uitgevoerd.dotnet run -
environmentVariablesuit het gekozen startprofiel (-lp) in het launchSettings.json-bestand van het project, indien van toepassing. Deze zijn van toepassing op het project dat wordt uitgevoerd doordotnet run. -
-e|--environmentCLI-optiewaarden (toegevoegd in .NET SDK versie 9.0.200). Deze zijn van toepassing op het project dat wordt uitgevoerd doordotnet run.
De omgeving is opgebouwd in dezelfde volgorde als deze lijst, dus de -e|--environment optie heeft de hoogste prioriteit.
Voorbeelden
Voer het project uit in de huidige map:
dotnet runVoer de opgegeven app op basis van bestanden uit in de huidige map:
dotnet run --file ConsoleApp.csOndersteuning voor app op basis van bestanden is toegevoegd in .NET SDK 10.0.100.
Voer het opgegeven project uit:
dotnet run --project ./projects/proj1/proj1.csprojVoer het project uit in de huidige map en geef de releaseconfiguratie op:
dotnet run --property:Configuration=ReleaseVoer het project uit in de huidige map (het
--helpargument in dit voorbeeld wordt doorgegeven aan de toepassing, omdat de lege--optie wordt gebruikt):dotnet run --configuration Release -- --helpHerstel afhankelijkheden en hulpprogramma's voor het project in de huidige map alleen met minimale uitvoer en voer vervolgens het project uit:
dotnet run --verbosity mVoer het project uit in de huidige map met behulp van het opgegeven framework en geef argumenten door aan de toepassing:
dotnet run -f net6.0 -- arg1 arg2In het volgende voorbeeld worden drie argumenten doorgegeven aan de toepassing. Eén argument wordt doorgegeven met behulp van
-en twee argumenten worden doorgegeven na--:dotnet run -f net6.0 -arg1 -- arg2 arg3