dotnet run
Эта статья относится к: ✔️ пакету SDK для .NET Core 3.1 и более поздних версий
name
dotnet run
— выполняет исходный код без дополнительных явных команд компиляции или запуска.
Краткий обзор
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>]
[-v|--verbosity <LEVEL>] [[--] [application arguments]]
dotnet run -h|--help
Описание
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
см. в разделе Средства интерфейса командной строки (CLI) .NET.
Для запуска приложения команда 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
, не поддерживаются.
Скачивание манифестов рабочих нагрузок
При выполнении этой команды запускается асинхронное фоновое скачивание оповестительных манифестов для рабочих нагрузок. Если скачивание по-прежнему выполняется по завершении этой команды, оно останавливается. Дополнительные сведения см. в разделе Оповестительные манифесты.
Параметры
--
Отделяет аргументы, предназначенные для
dotnet run
, от аргументов для выполняемого приложения. Все аргументы после разделителя передаются выполняемому приложению.
-a|--arch <ARCHITECTURE>
Указывает целевую архитектуру. Это сокращенный синтаксис для настройки идентификатора среды выполнения (RID), где указанное значение объединяется с RID по умолчанию. Например, если на компьютере
win-x64
указать--arch x86
, идентификатору RID присваивается значениеwin-x86
. При использовании этого параметра не используйте параметр-r|--runtime
. Этот параметр доступен начиная с выпуска .NET 6 предварительной версии 7.
-c|--configuration <CONFIGURATION>
Определяет конфигурацию сборки. По умолчанию для большинства проектов используется
Debug
, но можно переопределить параметры конфигурации сборки в проекте.
-f|--framework <FRAMEWORK>
Выполняет сборку и запуск приложения с использованием указанной платформы. Эта платформа должна быть указана в файле проекта.
--force
Принудительное разрешение всех зависимостей, даже если последнее восстановление прошло успешно. Указание этого флага дает тот же результат, что удаление файла project.assets.json.
-?|-h|--help
Выводит описание использования команды.
--interactive
Позволяет команде остановиться и дождаться, пока пользователь выполнит действие или введет данные. Например, чтобы завершить проверку подлинности. Доступно, начиная с пакета SDK для .NET Core 3.0.
--launch-profile <NAME>
Имя профиля запуска (при его наличии), который следует использовать при запуске приложения. Профили запуска обычно определяются в файле launchSettings.json и, как правило, называются
Development
,Staging
иProduction
. Дополнительные сведения см. в разделе Работа с несколькими средами.--no-build
Не выполняет сборку проекта перед запуском. Он также неявно задает флаг
--no-restore
.--no-dependencies
При восстановлении проекта с перекрестными ссылками между проектами восстанавливает только корневой проект, но не ссылки.
--no-launch-profile
Не пытается использовать файл launchSettings.json для настройки приложения.
--no-restore
Не выполняет неявное восстановление при выполнении команды.
--os <OS>
Позволяет указать целевую операционную систему. Это сокращенный синтаксис для настройки идентификатора среды выполнения (RID), где указанное значение объединяется с RID по умолчанию. Например, если на компьютере
win-x64
указать--os linux
, идентификатору RID присваивается значениеlinux-x64
. При использовании этого параметра не используйте параметр-r|--runtime
. Доступно с .NET 6.
--project <PATH>
Задает путь к запускаемому файлу проекта (имя папки или полный путь). Если значение не задано, по умолчанию используется текущий каталог.
Сокращение
-p
для--project
является устаревшим начиная с пакета SDK для .NET 6. В течение ограниченного времени, начиная с версии .NET 6 RC1 SDK,-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.
-v|--verbosity <LEVEL>
Задает уровень детализации команды. Допустимые значения:
q[uiet]
,m[inimal]
,n[ormal]
,d[etailed]
иdiag[nostic]
. Значение по умолчанию —minimal
. Для получения дополнительной информации см. LoggerVerbosity.
Примеры
Выполнение проекта в текущем каталоге:
dotnet run
Выполнение указанного проекта:
dotnet run --project ./projects/proj1/proj1.csproj
Выполните проект в текущем каталоге, указав конфигурацию выпуска.
dotnet run --property:Configuration=Release
Выполнение проекта в текущем каталоге (аргумент
--help
в этом примере передается приложению, так как используется пустой параметр--
):dotnet run --configuration Release -- --help
Восстановление зависимостей и средств для проекта в текущем каталоге с выводом минимального объема выходных данных и последующим запуском проекта.
dotnet run --verbosity m