Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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 runargumentů 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-x64počítači se zadáním--arch x86identifikátoru RID nastaví nawin-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-serversVynutí 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 runproces 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
envaenvironmentVariablesz 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 runPak můžete soubor spustit přímo z příkazového řádku:
./ConsoleApp.csPředstaveno v sadě .NET SDK 10.0.100.
--forceVynutí 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 .
-
--interactiveUmožň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,StagingaProduction. Další informace najdete v tématu Práce s více prostředími.--no-buildNevystaví projekt před spuštěním. Příznak také implicitně nastaví
--no-restore.--no-cachePřed spuštěním programu přeskočte k aktuálním kontrolám a vždy ho sestavte.
--no-dependenciesPři obnovování projektu s odkazy P2P (project-to-project), obnoví kořenový projekt, nikoli odkazy.
--no-launch-profileNepokouší se použít launchSettings.json ke konfiguraci aplikace.
--no-restorePři spuštění příkazu nespustí implicitní obnovení.
-
--no-self-containedEkvivalent 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-x64počítači se zadáním--os linuxidentifikátoru RID nastaví nalinux-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
-ppro--projectsadu .NET 6 SDK je zastaralá . Po omezenou dobu-pje možné i přes upozornění na vyřazení použít--project. Pokud argument zadaný pro možnost neobsahuje=, příkaz přijme-pzkratku pro--project. V opačném případě příkaz předpokládá, že-pje zkratka pro--property. Toto flexibilní použití-ppro--projectbude 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ář
-plze použít pro--property. Pokud argument zadaný pro tuto možnost obsahuje=,-pje přijat jako zkratka pro--property. V opačném případě příkaz předpokládá, že-pje zkratka pro--project.Pokud chcete aplikaci předat
--propertymí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-containedPublikujte 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.onpřeskočí kontrolu prostředí a povolí protokolování terminálu.offpř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]adiag[nostic]. Výchozí hodnota jeminimal. Další informace najdete na webu LoggerVerbosity. -
-?|-h|--helpVytiskne popis použití příkazu.
Proměnné prostředí
Pro spuštěnou aplikaci je možné použít čtyři mechanismy:
- Okolní proměnné prostředí z operačního systému při spuštění příkazu.
- Direktivy System.CommandLine
env, například[env:key=value]. To platí pro celýdotnet runproces, nejen projekt, kterýdotnet runspouští . -
environmentVariablesze zvoleného profilu spuštění (-lp) v souborulaunchSettings.json projektu( pokud existuje). Tyto informace platí pro projekt, kterýdotnet runspouští . -
-e|--environmentHodnoty 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 runV aktuálním adresáři spusťte zadanou aplikaci založenou na souborech:
dotnet run --file ConsoleApp.csPodpora souborových aplikací byla přidána do sady .NET SDK 10.0.100.
Spusťte zadaný projekt:
dotnet run --project ./projects/proj1/proj1.csprojSpusťte projekt v aktuálním adresáři a zadejte konfiguraci vydané verze:
dotnet run --property:Configuration=ReleaseSpusťte projekt v aktuálním adresáři (
--helpargument v tomto příkladu se předá aplikaci, protože se používá prázdná--možnost):dotnet run --configuration Release -- --helpObnovte 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 mSpusťte projekt v aktuálním adresáři pomocí zadané architektury a předejte do aplikace argumenty:
dotnet run -f net6.0 -- arg1 arg2V 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