Sdílet prostřednictvím


dotnet run

Tento článek se vztahuje na: ✔️ .NET 6 SDK a novější verze

Název

dotnet run – Spustí zdrojový kód bez explicitní kompilace nebo spuštění příkazů.

Synopse

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

Popis

Tento dotnet run příkaz nabízí pohodlnou možnost spuštění aplikace ze zdrojového kódu jedním příkazem. Je užitečné pro rychlý iterativní vývoj z příkazového řádku. Příkaz závisí na dotnet build příkazu pro sestavení kódu. Všechny požadavky na sestavení platí dotnet run také.

Poznámka:

dotnet run nerespektuje argumenty jako /property:property=value, které jsou respektovány dotnet build.

Výstupní soubory jsou zapsány do výchozího umístění, což je bin/<configuration>/<target>. Pokud máte netcoreapp2.1 například aplikaci a spustíte dotnet runji, výstup se umístí do bin/Debug/netcoreapp2.1souboru . Soubory se podle potřeby přepíšou. Dočasné soubory se umístí do obj adresáře.

Pokud projekt určuje více architektur, provedení dotnet run způsobí chybu, pokud -f|--framework <FRAMEWORK> se tato možnost nepoužije k určení architektury.

Příkaz dotnet run se používá v kontextu projektů, ne sestavení. Pokud se místo toho pokoušíte spustit knihovnu DLL aplikace závislé na rozhraní, musíte použít dotnet bez příkazu. Například ke spuštění myapp.dllpoužijte:

dotnet myapp.dll

Další informace o ovladači dotnet najdete v tématu .NET CLI – přehled.

Pokud chcete aplikaci spustit, dotnet run příkaz přeloží závislosti aplikace, které jsou mimo sdílený modul runtime z mezipaměti NuGet. Vzhledem k tomu, že používá závislosti uložené v mezipaměti, nedoporučuje se používat dotnet run ke spouštění aplikací v produkčním prostředí. Místo toho vytvořte nasazení pomocí dotnet publish příkazu a nasaďte publikovaný výstup.

Implicitní obnovení

Nemusíte spouštětdotnet restore, protože se spouští implicitně všemi příkazy, které vyžadují obnovení, například dotnet new, , dotnet build, dotnet run, dotnet testdotnet publisha dotnet pack. Pokud chcete zakázat implicitní obnovení, použijte tuto --no-restore možnost.

Příkaz dotnet restore je stále užitečný v určitých scénářích, kdy explicitní obnovení dává smysl, například sestavení kontinuální integrace ve službě Azure DevOps Services nebo v systémech sestavení, které potřebují explicitně řídit, kdy dojde k obnovení.

Informace o správě informačních kanálů NuGet najdete v dotnet restore dokumentaci.

Tento příkaz podporuje dotnet restore možnosti, které jsou předány v dlouhém formátu (například --source). Krátké možnosti formuláře, například -s, nejsou podporovány.

Stažení manifestu úloh

Při spuštění tohoto příkazu zahájí asynchronní stahování reklamních manifestů pro úlohy. Pokud stahování po dokončení tohoto příkazu stále běží, stahování se zastaví. Další informace naleznete v tématu Reklamní manifesty.

Arguments

<applicationArguments>

Argumenty předané aplikaci, která se spouští.

Všechny argumenty, které aplikace nerozpoznají dotnet run , se předají. Pokud chcete oddělit argumenty od argumentů dotnet run pro aplikaci, použijte -- tuto možnost.

Možnosti

  • --

    Odděluje argumenty od dotnet run argumentů pro spuštěnou aplikaci. Všechny argumenty za tímto oddělovačem se předají do spuštění aplikace.

  • -a|--arch <ARCHITECTURE>

    Určuje cílovou architekturu. Toto je zkratka pro nastavení identifikátoru runtime (RID), kde se zadaná hodnota zkombinuje s výchozím identifikátorem RID. Například na win-x64 počítači se zadáním --arch x86 identifikátoru RID nastaví na win-x86. Pokud použijete tuto možnost, tuto možnost nepoužívejte -r|--runtime . K dispozici od verze .NET 6 Preview 7.

  • --artifacts-path <ARTIFACTS_DIR>

    Všechny výstupní soubory sestavení ze spuštěného příkazu budou v podsložkách pod zadanou cestou oddělenou projektem. Další informace naleznete v tématu Rozložení výstupu artefaktů. K dispozici od sady .NET 8 SDK.

  • -c|--configuration <CONFIGURATION>

    Definuje konfiguraci sestavení. Výchozí hodnota pro většinu projektů je Debug, ale můžete přepsat nastavení konfigurace sestavení v projektu.

  • --disable-build-servers

    Vynutí příkaz ignorovat všechny trvalé buildové servery. Tato možnost poskytuje konzistentní způsob, jak zakázat veškeré použití ukládání sestavení do mezipaměti, což vynutí sestavení úplně od začátku. Sestavení, které nespoléhá na mezipaměti, je užitečné, když jsou mezipaměti z nějakého důvodu poškozené nebo nesprávné. K dispozici od sady .NET 7 SDK.

  • -e|--environment <KEY=VALUE>

    Nastaví zadanou proměnnou prostředí v procesu, která se spustí příkazem. Zadaná proměnná prostředí se na dotnet run proces nepoužije.

    Proměnné prostředí předávané touto možností mají přednost před proměnnými okolního prostředí, direktivami System.CommandLine env a environmentVariables z vybraného spouštěcího profilu. Další informace naleznete v tématu Proměnné prostředí.

    (Tato možnost byla přidána do sady .NET SDK 9.0.200.)

  • -f|--framework <FRAMEWORK>

    Sestaví a spustí aplikaci pomocí zadané architektury. Architektura musí být zadána v souboru projektu.

  • --file <FILE_PATH>

    Cesta ke spuštění aplikace založené na souborech. Pokud není zadaná cesta, použije se aktuální adresář k vyhledání a spuštění souboru. Další informace o souborovýchaplikacích

    V unixu můžete spouštět aplikace založené na souborech přímo pomocí názvu zdrojového souboru na příkazovém řádku místo dotnet run. Nejprve se ujistěte, že soubor má oprávnění ke spuštění. Potom přidejte čáru #! shebang jako první řádek souboru, například:

    #!/usr/bin/env dotnet run
    

    Pak můžete soubor spustit přímo z příkazového řádku:

    ./ConsoleApp.cs
    

    Představeno v sadě .NET SDK 10.0.100.

  • --force

    Vynutí vyřešení všech závislostí, i když bylo poslední obnovení úspěšné. Určení tohoto příznaku je stejné jako odstranění souboru project.assets.json .

  • --interactive

    Umožňuje příkazu zastavit a čekat na uživatelský vstup nebo akci. Například k dokončení ověřování.

  • --launch-profile <NAME>

    Název spouštěcího profilu (pokud existuje) pro použití při spuštění aplikace. Profily spuštění jsou definovány v souboru launchSettings.json a obvykle se nazývají Development, Staginga Production. Další informace najdete v tématu Práce s více prostředími.

  • --no-build

    Nevystaví projekt před spuštěním. Příznak také implicitně nastaví --no-restore .

  • --no-cache

    Před spuštěním programu přeskočte k aktuálním kontrolám a vždy ho sestavte.

  • --no-dependencies

    Při obnovování projektu s odkazy P2P (project-to-project), obnoví kořenový projekt, nikoli odkazy.

  • --no-launch-profile

    Nepokouší se použít launchSettings.json ke konfiguraci aplikace.

  • --no-restore

    Při spuštění příkazu nespustí implicitní obnovení.

  • --no-self-contained

    Ekvivalent k --self-contained false.

  • --os <OS>

    Určuje cílový operační systém (OS). Toto je zkratka pro nastavení identifikátoru runtime (RID), kde se zadaná hodnota zkombinuje s výchozím identifikátorem RID. Například na win-x64 počítači se zadáním --os linux identifikátoru RID nastaví na linux-x64. Pokud použijete tuto možnost, tuto možnost nepoužívejte -r|--runtime . K dispozici od .NET 6.

  • --project <PATH>

    Určuje cestu ke spuštění souboru projektu (název složky nebo úplná cesta). Pokud není zadaný, nastaví se jako výchozí aktuální adresář.

    Zkratka -p pro --project sadu .NET 6 SDK je zastaralá . Po omezenou dobu -p je možné i přes upozornění na vyřazení použít --project . Pokud argument zadaný pro možnost neobsahuje =, příkaz přijme -p zkratku pro --project. V opačném případě příkaz předpokládá, že -p je zkratka pro --property. Toto flexibilní použití -p pro --project bude ukončeno v .NET 7.

  • --property:<NAME>=<VALUE>

    Nastaví jednu nebo více vlastností nástroje MSBuild. Zadejte více vlastností oddělených středníky nebo opakováním možnosti:

    --property:<NAME1>=<VALUE1>;<NAME2>=<VALUE2>
    --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>
    

    Krátký formulář -p lze použít pro --property. Pokud argument zadaný pro tuto možnost obsahuje =, -p je přijat jako zkratka pro --property. V opačném případě příkaz předpokládá, že -p je zkratka pro --project.

    Pokud chcete aplikaci předat --property místo nastavení vlastnosti MSBuild, zadejte možnost za -- oddělovačem syntaxe, například:

    dotnet run -- --property name=value
    
  • -r|--runtime <RUNTIME_IDENTIFIER>

    Určuje cílový modul runtime pro obnovení balíčků. Seznam identifikátorů runtime (RID) najdete v katalogu RID.

  • --sc|--self-contained

    Publikujte modul runtime .NET s vaší aplikací, aby se modul runtime nemusel instalovat na cílový počítač. Výchozí hodnota je true.

  • --tl:[auto|on|off]

    Určuje, jestli se má pro výstup sestavení použít terminálový protokolovací nástroj . Výchozí hodnota je auto, která nejprve ověří prostředí před povolením protokolování terminálu. Prostředí ověřuje, že terminál dokáže používat moderní výstupní funkce a nepoužívá přesměrovaný standardní výstup, než povolí nový protokolovací modul. on přeskočí kontrolu prostředí a povolí protokolování terminálu. off přeskočí kontrolu prostředí a použije výchozí protokolovací nástroj konzoly.

    Terminal Logger ukazuje fázi obnovení následovanou fází sestavení. Během každé fáze se aktuálně stavební projekty zobrazují v dolní části terminálu. Každý projekt, který vytváří výstupy cíle NÁSTROJE MSBuild, který se právě sestavuje, i dobu strávenou na daném cíli. Další informace o sestavení najdete v těchto informacích. Po dokončení sestavení projektu se zapíše jeden oddíl "sestavení dokončeno", který zachycuje:

    • Název sestaveného projektu.
    • Cílová architektura (pokud je cílená na více cílů).
    • Stav tohoto sestavení.
    • Primární výstup tohoto sestavení (který je hypertextový odkaz).
    • Všechna diagnostika vygenerovaná pro tento projekt.

    Tato možnost je dostupná od verze .NET 8.

  • -v|--verbosity <LEVEL>

    Nastaví úroveň podrobností příkazu. Povolené hodnoty jsou q[uiet], , m[inimal]n[ormal], d[etailed]a diag[nostic]. Výchozí hodnota je minimal. Další informace najdete na webu LoggerVerbosity.

  • -?|-h|--help

    Vytiskne popis použití příkazu.

Proměnné prostředí

Pro spuštěnou aplikaci je možné použít čtyři mechanismy:

  1. Okolní proměnné prostředí z operačního systému při spuštění příkazu.
  2. Direktivy System.CommandLine env , například [env:key=value]. To platí pro celý dotnet run proces, nejen projekt, který dotnet runspouští .
  3. environmentVariables ze zvoleného profilu spuštění (-lp) v souborulaunchSettings.json projektu( pokud existuje). Tyto informace platí pro projekt, který dotnet runspouští .
  4. -e|--environment Hodnoty možností rozhraní příkazového řádku (přidané v sadě .NET SDK verze 9.0.200) Tyto informace platí pro projekt, který dotnet runspouští .

Prostředí se sestaví ve stejném pořadí jako tento seznam, takže -e|--environment tato možnost má nejvyšší prioritu.

Příklady

  • Spusťte projekt v aktuálním adresáři:

    dotnet run
    
  • V aktuálním adresáři spusťte zadanou aplikaci založenou na souborech:

    dotnet run --file ConsoleApp.cs
    

    Podpora souborových aplikací byla přidána do sady .NET SDK 10.0.100.

  • Spusťte zadaný projekt:

    dotnet run --project ./projects/proj1/proj1.csproj
    
  • Spusťte projekt v aktuálním adresáři a zadejte konfiguraci vydané verze:

    dotnet run --property:Configuration=Release
    
  • Spusťte projekt v aktuálním adresáři ( --help argument v tomto příkladu se předá aplikaci, protože se používá prázdná -- možnost):

    dotnet run --configuration Release -- --help
    
  • Obnovte závislosti a nástroje pro projekt v aktuálním adresáři pouze s minimálním výstupem a spusťte projekt:

    dotnet run --verbosity m
    
  • Spusťte projekt v aktuálním adresáři pomocí zadané architektury a předejte do aplikace argumenty:

    dotnet run -f net6.0 -- arg1 arg2
    

    V následujícím příkladu se aplikaci předají tři argumenty. Jeden argument je předán pomocí a -dva argumenty jsou předány za --:

    dotnet run -f net6.0 -arg1 -- arg2 arg3