Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Эта статья относится к: ✔️ пакету SDK для .NET 6 и более поздних версий
Имя.
dotnet run — выполняет исходный код без дополнительных явных команд компиляции или запуска.
Краткие сведения
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
Description
dotnet run — это удобное средство для запуска приложения из исходного кода одной командой. Это полезно для быстрой последовательной разработки из командной строки. В отношении сборки кода эта команда зависима от команды dotnet build. Все требования к сборке применяются dotnet run и к.
Примечание.
dotnet run не учитывает такие аргументы, как /property:property=value, которые учитывает dotnet build.
Выходные файлы записываются в расположение по умолчанию, которым является bin/<configuration>/<target>. Например, если у вас есть приложение netcoreapp2.1 и вы запускаете dotnet run, выходные данные помещаются в bin/Debug/netcoreapp2.1. При необходимости файлы перезаписываются. Временные файлы помещаются в каталог obj.
Когда в проекте задано несколько платформ, выполнение dotnet run приводит к ошибке, если только для указания платформы не используется параметр -f|--framework <FRAMEWORK>.
Команда dotnet run используется в контексте проектов, а не созданных сборок. Если вместо этого вы пытаетесь запустить библиотеку DLL платформозависимого приложения, следует использовать dotnet без команды. Например, для выполнения myapp.dll используйте:
dotnet myapp.dll
Дополнительные сведения о драйвере см. в обзоре dotnet.NET CLI.
Для запуска приложения команда dotnet run разрешает зависимости приложения, выходящие за пределы общей среды выполнения, из кэша NuGet. Из-за использования кэшированных зависимостей не рекомендуется применять команду dotnet run для запуска приложений в рабочей среде. Вместо этого создайте развертывание с помощью команды dotnet publish и разверните опубликованные выходные данные.
Неявное восстановление
Вам не нужно выполнять команду dotnet restore, так как она выполняется неявно всеми командами, которые требуют восстановления, например dotnet new, dotnet build, dotnet run, dotnet test, dotnet publish и dotnet pack. Чтобы отключить неявное восстановление, используйте параметр --no-restore.
Команду dotnet restore по-прежнему удобно использовать в некоторых сценариях, где необходимо явное восстановление, например в сборках с использованием непрерывной интеграции в Azure DevOps Services или системах сборки, где требуется явно контролировать время восстановления.
Сведения об управлении веб-каналами NuGet см. в документации по dotnet restore.
Эта команда поддерживает параметры dotnet restore при передаче в длинной форме (например, --source). Параметры в краткой форме, например -s, не поддерживаются.
Скачивание манифестов рабочих нагрузок
При выполнении этой команды запускается асинхронное фоновое скачивание оповестительных манифестов для рабочих нагрузок. Если скачивание по-прежнему выполняется по завершении этой команды, оно останавливается. Дополнительные сведения см. в разделе Оповестительные манифесты.
Arguments
<applicationArguments>
Аргументы, передаваемые в запущенное приложение.
Все аргументы, которые не распознаются приложением dotnet run . Чтобы разделить аргументы dotnet run из аргументов для приложения, используйте -- этот параметр.
Параметры
--Отделяет аргументы, предназначенные для
dotnet run, от аргументов для выполняемого приложения. Все аргументы после разделителя передаются выполняемому приложению.
-a|--arch <ARCHITECTURE>Указывает целевую архитектуру. Это сокращенный синтаксис для настройки идентификатора среды выполнения (RID), где указанное значение объединяется с RID по умолчанию. Например, если на компьютере
win-x64указать--arch x86, идентификатору RID присваивается значениеwin-x86. При использовании этого параметра не используйте параметр-r|--runtime. Этот параметр доступен с выпуска .NET 6, предварительная версия 7.
--artifacts-path <ARTIFACTS_DIR>Все выходные файлы сборки из выполняемой команды будут отправляться в вложенные папки в соответствии с указанным путем, разделенным проектом. Дополнительные сведения см. в макете выходных данных артефактов. Доступно с пакета SDK для .NET 8.
-c|--configuration <CONFIGURATION>Определяет конфигурацию сборки. По умолчанию для большинства проектов используется
Debug, но можно переопределить параметры конфигурации сборки в проекте.
--disable-build-serversПринудительно заставляет команду игнорировать все постоянные серверы сборки. Этот параметр предоставляет согласованный способ отключить все использование кэширования сборки, которая заставляет сборку с нуля. Сборка, которая не зависит от кэшей, полезна, когда кэши могут быть повреждены или неверны по какой-то причине. Доступно с пакета SDK для .NET 7.
-e|--environment <KEY=VALUE>Задает указанную переменную среды в процессе, которая будет выполняться командой. Указанная переменная среды не применяется к
dotnet runпроцессу.Переменные среды, передаваемые через этот параметр, имеют приоритет над переменными среды окружающей среды, директивами System.CommandLine
envиenvironmentVariablesвыбранным профилем запуска. Дополнительную информацию см. в разделе Переменные среды.(Этот параметр добавлен в пакет SDK для .NET 9.0.200.)
-f|--framework <FRAMEWORK>Выполняет сборку и запуск приложения с использованием указанной платформы. Эта платформа должна быть указана в файле проекта.
--file <FILE_PATH>Путь к выполняемом приложению на основе файлов. Если путь не указан, текущий каталог используется для поиска и запуска файла. Дополнительные сведения о приложениях на основе файлов см. в разделе "Создание файловых приложений C#".
В Unix можно запускать приложения на основе файлов напрямую, используя имя исходного файла в командной строке, а не
dotnet run. Сначала убедитесь, что файл имеет разрешения на выполнение. Затем добавьте строку#!shebang в качестве первой строки файла, например:#!/usr/bin/env dotnet runЗатем файл можно запустить непосредственно из командной строки:
./ConsoleApp.csПредставлен в пакете SDK для .NET 10.0.100.
--forceПринудительное разрешение всех зависимостей, даже если последнее восстановление прошло успешно. Указание этого флага дает тот же результат, что удаление файла project.assets.json.
--interactiveПозволяет команде остановиться и дождаться, пока пользователь выполнит действие или введет данные. Например, чтобы завершить проверку подлинности. Доступно, начиная с пакета SDK для .NET Core 3.0.
--launch-profile <NAME>Имя профиля запуска (при его наличии), который следует использовать при запуске приложения. Профили запуска обычно определяются в файле launchSettings.json и, как правило, называются
Development,StagingиProduction. Дополнительные сведения см. в разделе Работа с несколькими средами.--no-buildНе выполняет сборку проекта перед запуском. Он также неявно задает флаг
--no-restore.--no-cacheПропустите актуальные проверки и всегда создайте программу перед запуском.
--no-dependenciesПри восстановлении проекта с перекрестными ссылками между проектами восстанавливает только корневой проект, но не ссылки.
--no-launch-profileНе пытается использовать файл launchSettings.json для настройки приложения.
--no-restoreНе выполняет неявное восстановление при выполнении команды.
--no-self-containedОпубликуйте приложение в качестве зависимого от платформы приложения. Для запуска приложения необходимо установить совместимую среду выполнения .NET на целевом компьютере.
--os <OS>Позволяет указать целевую операционную систему. Это сокращенный синтаксис для настройки идентификатора среды выполнения (RID), где указанное значение объединяется с RID по умолчанию. Например, если на компьютере
win-x64указать--os linux, идентификатору RID присваивается значениеlinux-x64. При использовании этого параметра не используйте параметр-r|--runtime. Доступно с .NET 6.
--project <PATH>Задает путь к запускаемому файлу проекта (имя папки или полный путь). Если значение не задано, по умолчанию используется текущий каталог.
Сокращение
-pдля--projectявляется устаревшим начиная с пакета SDK для .NET 6. В течение ограниченного времени-pможно по-прежнему использовать для--projectпредупреждения об отказе. Если аргумент, указанный для параметра, не содержит=, команда принимает-pв качестве короткой формы для--project. В противном случае команда предполагает, что-pявляется короткой формой для--property. Эти гибкие возможности использования-pдля--projectбудут доступны в .NET 7.--property:<NAME>=<VALUE>Задает одно свойство MSBuild или несколько. Укажите несколько свойств, разделяя их точкой с запятой, или укажите их путем повтора команды.
--property:<NAME1>=<VALUE1>;<NAME2>=<VALUE2> --property:<NAME1>=<VALUE1> --property:<NAME2>=<VALUE2>Короткая форма
-pможет использоваться для--property. Если аргумент, указанный для параметра, содержит=,-pпринимается как короткая формат для--property. В противном случае команда предполагает, что-pявляется короткой формой для--project.Чтобы передать
--propertyв приложение вместо того, чтобы задать свойство MSBuild, укажите параметр после разделителя синтаксиса--, например:dotnet run -- --property name=value-r|--runtime <RUNTIME_IDENTIFIER>Задает целевую среду выполнения для восстановления пакетов. Список идентификаторов сред выполнения (RID) см. в каталоге RID.
-sc|--self-containedПубликует среду выполнения .NET в приложении, чтобы среда выполнения не должна быть установлена в целевой системе. Значение по умолчанию —
false. Однако при выборе целевого объекта .NET 7 или ниже значение по умолчанию указываетсяtrue, если указан идентификатор среды выполнения.
--tl:[auto|on|off]Указывает, следует ли использовать средство ведения журнала терминала для выходных данных сборки. Значением по умолчанию является
autoто, что сначала проверяет среду перед включением ведения журнала терминалов. Проверка среды проверяет, что терминал может использовать современные выходные функции и не использует перенаправленные стандартные выходные данные перед включением нового средства ведения журнала.onпропускает проверку среды и включает ведение журнала терминалов.offпропускает проверку среды и использует средство ведения журнала консоли по умолчанию.Средство ведения журнала терминала показывает этап восстановления, за которым следует этап сборки. На каждом этапе в нижней части терминала отображаются строительные проекты. Каждый проект, который создает выходные данные как целевого объекта MSBuild, который в настоящее время создается, так и время, затраченное на этот целевой объект. Эти сведения можно найти, чтобы узнать больше о сборке. После завершения сборки проекта записывается один раздел "сборка завершена", который записывает:
- Имя созданного проекта.
- Целевая платформа (если она используется с несколькими целевыми объектами).
- Состояние этой сборки.
- Основные выходные данные этой сборки (которая гиперссылок).
- Все диагностика, созданные для этого проекта.
Этот параметр доступен начиная с .NET 8.
-v|--verbosity <LEVEL>Задает уровень детализации команды. Допустимые значения:
q[uiet],m[inimal],n[ormal],d[etailed]иdiag[nostic]. Значение по умолчанию —minimal. Дополнительные сведения см. в разделе LoggerVerbosity.
-?|-h|--helpВыводит описание использования команды.
Переменные среды
Существует четыре механизма, с помощью которых переменные среды могут применяться к запущенным приложениям:
- Переменные среды окружающей среды из операционной системы при выполнении команды.
- Директивы System.CommandLine
env, например[env:key=value]. Они применяются ко всемуdotnet runпроцессу, а не только к проекту, который выполняетсяdotnet run. -
environmentVariablesиз выбранного профиля запуска (-lp) в файлеlaunchSettings.json проекта, если таковой есть. Они применяются к проекту, который выполняетсяdotnet run. -
-e|--environmentЗначения параметров CLI (добавлены в пакет SDK для .NET версии 9.0.200). Они применяются к проекту, который выполняетсяdotnet run.
Среда создается в том же порядке, что и этот список, поэтому -e|--environment параметр имеет самый высокий приоритет.
Примеры
Выполнение проекта в текущем каталоге:
dotnet runЗапустите указанное приложение на основе файлов в текущем каталоге:
dotnet run --file ConsoleApp.csПоддержка приложений на основе файлов добавлена в пакет SDK для .NET 10.0.100.
Выполнение указанного проекта:
dotnet run --project ./projects/proj1/proj1.csprojВыполните проект в текущем каталоге, указав конфигурацию выпуска.
dotnet run --property:Configuration=ReleaseВыполнение проекта в текущем каталоге (аргумент
--helpв этом примере передается приложению, так как используется пустой параметр--):dotnet run --configuration Release -- --helpВосстановление зависимостей и средств для проекта в текущем каталоге с выводом минимального объема выходных данных и последующим запуском проекта.
dotnet run --verbosity mЗапустите проект в текущем каталоге с помощью указанной платформы и передайте аргументы в приложение:
dotnet run -f net6.0 -- arg1 arg2В следующем примере три аргумента передаются приложению. Один аргумент передается с помощью,
-а два аргумента передаются после--:dotnet run -f net6.0 -arg1 -- arg2 arg3