dotnet-uitvoering

Dit artikel is van toepassing op: ✔️ .NET Core 3.1 SDK en latere versies

Naam

dotnet run - De broncode wordt uitgevoerd zonder expliciete compileer- of startopdrachten.

Samenvatting

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

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, zoals dat het project eerst moet worden hersteld, zijn ook van dotnet run toepassing op.

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.

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.

Opties

  • --

    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 op win-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 bestand project.assets.json .

  • -?|-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 bestand launch Instellingen.json en worden meestal genoemd Development, Stagingen Production. 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 om launch te gebruiken Instellingen.json 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 op linux-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:

    --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:

    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).

  • --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 zijnq[uiet], , , n[ormal]en diag[nostic]d[etailed]m[inimal]. De standaardwaarde is minimal. Voor meer informatie raadpleegt u LoggerVerbosity.

Voorbeelden

  • Voer het project uit in de huidige map:

    dotnet run
    
  • Voer het opgegeven project uit:

    dotnet run --project ./projects/proj1/proj1.csproj
    
  • Voer het project uit in de huidige map en geef de releaseconfiguratie op:

    dotnet 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):

    dotnet 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:

    dotnet run --verbosity m