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 testdotnet 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