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.
článek This 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>] [--disable-build-servers]
[-e|--environment <KEY=VALUE>] [--file <FILE_PATH>]
[-f|--framework <FRAMEWORK>] [--force] [--interactive]
[-lp|--launch-profile <NAME>] [--no-build] [--no-cache]
[--no-dependencies] [--no-launch-profile] [--no-restore] [--os <OS>]
[-p|--property:<PROPERTYNAME>=<VALUE>]
[--project <PATH>] [-r|--runtime <RUNTIME_IDENTIFIER>]
[--sc|--self-contained] [--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é.
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 přehled rozhraní příkazového řádku.
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 situacích, kdy explicitní obnovení dává smysl, například sestavení integrace kontinuá 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.
Předávání argumentů do aplikace
dotnet run předá všechny tokeny, které aplikace nerozpozná. Předávané tokeny zachovávají původní pořadí, ale dotnet run nejdřív odeberou možnosti, kterým rozumí. Když se rozpoznaná možnost zobrazí mezi nerozpoznaným názvem možnosti a její hodnotou, odebrání rozpoznané možnosti může změnit význam zbývajících tokenů.
Například následující příkaz prolíná rozpoznanou možnost --project mezi tokeny, které má aplikace přijímat:
dotnet run --app-flag --app-name --project ConsoleApp.csproj A.txt
Po dotnet run spotřebě --project ConsoleApp.csprojaplikace obdrží --app-flag --app-name A.txt. Aplikace pak považuje A.txt za hodnotu --app-name, která neodpovídá původnímu příkazovému řádku.
Abyste se této nejednoznačnosti vyhnuli, umístěte argumenty aplikace za literál --:
dotnet run --project ConsoleApp.csproj -- --app-flag --app-name A.txt
Oddělovač -- označí každý následující token jako argument aplikace, takže dotnet run je nepřeuspořádá ani neinterpretuje. Oddělovač také skripty pro budoucí kontroly pravopisu proti novým dotnet run možnostem, které se později můžou shodovat s tokenem předaným do aplikace.
Note
Stejné chování platí pro dotnet build a dotnet test v Microsoft. Režim Testing.Platform (MTP), který předává nerozpoznané tokeny msBuild nebo testovací aplikaci. Další informace o dotnet testpoužití naleznete v tématu Předávání argumentů do testovací aplikace.
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 .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ů. Tato možnost a zadaná hodnota musí být explicitně kaskádové v libovolném
dotnetpříkazu, který závisí na výstupu jinéhodotnetpříkazu, například při použitídotnet build --no-restoreadotnet publish --no-build. K dispozici od .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 .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 spusťte aplikace založené na souborech přímo pomocí názvu souboru přidáním direktivy shebang (
#!) a nastavením oprávnění pro spuštění. Další informace naleznete v tématu Podpora unixových shebangů (#!).Př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í.
-lp|--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-containedPublikujte aplikaci jako aplikaci závislou na rozhraní. Aby bylo možné spustit aplikaci, musí být na cílovém počítači nainstalovaný kompatibilní modul runtime .NET.
-
--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--projectje zastaralá počínaje .NET 6 SDK. 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č.
-
--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 .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