dotnet run

Эта статья относится к: ✔️ пакету SDK для .NET Core 3.1 и более поздних версий

Имя.

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>]
    [--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 см. в разделе Средства интерфейса командной строки (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.

  • --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.

Примеры

  • Выполнение проекта в текущем каталоге:

    dotnet run
    
  • Выполнение указанного проекта:

    dotnet run --project ./projects/proj1/proj1.csproj
    
  • Выполните проект в текущем каталоге, указав конфигурацию выпуска.

    dotnet run --property:Configuration=Release
    
  • Выполнение проекта в текущем каталоге (аргумент --help в этом примере передается приложению, так как используется пустой параметр --):

    dotnet run --configuration Release -- --help
    
  • Восстановление зависимостей и средств для проекта в текущем каталоге с выводом минимального объема выходных данных и последующим запуском проекта.

    dotnet run --verbosity m