Команда dotnet
dotnet — универсальный драйвер для интерфейса командной строки .NET (CLI).
Краткий обзор
Чтобы получить сведения о среде и доступных командах, выполните следующие действия:
dotnet [--version] [--info] [--list-runtimes] [--list-sdks] dotnet -h|--help
Выполнение команды (требуется установка пакета SDK):
dotnet [-d|--diagnostics] [-h|--help] [--verbosity ] [command-options] [arguments]
dotnet [--additionalprobingpath ] [--additional-deps ] [--fx-version ] [--roll-forward ] [arguments] dotnet exec [--additionalprobingpath] [--additional-deps ] [--depsfile ] [--fx-version ] [--roll-forward ] [--runtimeconfig ] [arguments]
Описание
Команда dotnet выполняет две функции:
- Она предоставляет команды для работы с проектами .NET. Например, команда dotnet build выполняет построение проекта. Каждая команда определяет свои параметры и аргументы. Все команды поддерживают параметр —help , позволяющий вывести краткую справку по их использованию.
- Она запускает приложения .NET. Для запуска приложения необходимо указать путь к его файлу .dll . Чтобы запустить приложение, необходимо найти и выполнить точку входа, которая в случае использования консольных приложений является методом Main . Например, команда dotnet myapp.dll запускает приложение myapp . Дополнительные сведения о параметрах развертывания см. в статье Развертывание приложений .NET.
Параметры
Доступны различные варианты для:
- Отображение сведений о среде.
- Выполнение команды.
- Запуск приложения.
Параметры отображения сведений о среде и доступных команд
Следующие параметры доступны, если dotnet используется сам по себе, без указания команды или приложения для запуска. Например, dotnet —info или dotnet —version . Выводит сведения о среде.
- —info Выводит подробные сведения об установке .NET и среде компьютера, например текущую операционную систему и фиксацию SHA версии .NET.
- —version
Выводит версию пакета SDK для .NET, используемого командами dotnet , на которую может повлиять файл global.json . Доступно только при установке пакета SDK.
- —list-runtimes Выводит список установленных сред выполнения .NET. Версия x86 пакета SDK содержит только среды выполнения x86, а в версии x64 пакета SDK содержатся только среды выполнения x64.
- —list-sdks Выводит список установленных пакетов SDK для .NET.
- -?|-h|—help Выводит список доступных команд.
Параметры выполнения команды
Для dotnet с командой доступны следующие параметры. Например, dotnet build —help или dotnet build —verbosity diagnostic .
- -d|—diagnostics Включает вывод диагностических данных.
- -v|—verbosity Задает уровень детализации команды. Допустимые значения: q[uiet] , m[inimal] , n[ormal] , d[etailed] и diag[nostic] . Поддерживается не во всех командах. Дополнительные сведения см. на странице соответствующей команды.
- -?|-h|—help Выводит документацию по заданной команде. Например, dotnet build —help отображает справку по команде build .
- command options Для каждой команды определяются относящиеся к ней параметры. Список доступных для команды параметров можно просмотреть на соответствующей ей странице.
Параметры запуска приложения
При запуске приложения в dotnet доступны следующие параметры. Например, dotnet —roll-forward Major myapp.dll .
- —additionalprobingpath Путь, содержащий политику проверки и проверяемые сборки. Повторите этот параметр, чтобы указать несколько путей.
- —additional-deps Путь к дополнительному файлу .deps.json. Файл deps.json содержит список зависимостей, зависимости компиляции и сведения о версии, используемые для устранения конфликтов сборок. Дополнительные сведения см. в разделе Файлы конфигурации среды выполнения на GitHub.
- —roll-forward Управляет применением наката к приложению. SETTING может иметь одно из следующих значений. Если тип не указан, по умолчанию используется вариант Minor .
- LatestPatch — накат до версии с наибольшим номером исправления. Отключает накат дополнительных версий.
- Minor — накат до дополнительной версии со следующим по порядку возрастания номером, если запрошенная дополнительная версия отсутствует. Если запрошенная дополнительная версия присутствует, используется политика LatestPatch.
- Major — накат до основной версии со следующим по порядку возрастания или дополнительной версии с наименьшим номером, если запрошенная дополнительная версия отсутствует. Если запрошенная основная версия присутствует, используется политика Minor.
- LatestMinor — накат до дополнительной версии с наибольшим номером, даже если запрошенная дополнительная версия присутствует. Предназначен для сценариев размещения компонентов.
- LatestMajor — накат до основной версии с наибольшим номером и дополнительной версии с наибольшим номером, даже если запрошенная основная версия присутствует. Предназначен для сценариев размещения компонентов.
- Disable — накат не выполняется. Привязка только к указанной версии. Эта политика не рекомендуется для общего использования, поскольку отключает возможность наката до последних исправлений. Это значение рекомендуется использовать только для тестирования.
Все параметры, кроме параметра Disable , будут использовать версию с последним доступным исправлением.
Поведение наката также можно настроить в свойствах файла проекта, файла конфигурации среды выполнения и переменной среды. Дополнительные сведения см. в разделе Накат основной версии среды выполнения.
Параметры запуска приложения с exec помощью команды
Следующие параметры доступны только при dotnet запуске приложения с помощью exec команды . Например, dotnet exec —runtimeconfig myapp.runtimeconfig.json myapp.dll .
- —depsfile Путь к файлу deps.json. Файл конфигурации deps.json содержит информацию о зависимостях, необходимых для выполнения приложения. Этот файл создается пакетом SDK для .NET.
- —runtimeconfig Путь к файлу runtimeconfig.json. Файл runtimeconfig.json содержит параметры времени выполнения и обычно называется . Дополнительные сведения см. в статье Параметры конфигурации среды выполнения .NET.
Команды dotnet
Общее
Команда Функция dotnet build Выполняет сборку приложения .NET. dotnet build-server Взаимодействует с серверами, запущенными сборкой. dotnet clean Очищает выходные данные сборки. dotnet exec Запускает приложение .NET. dotnet help Выводит более подробную документацию из Интернета для команды. dotnet migrate Переносит допустимый проект предварительной версии 2 в проект пакета SDK .NET Core 1.0. dotnet msbuild Обеспечивает доступ к командной строке MSBuild. dotnet new Инициализирует проект C# или F# для заданного шаблона. dotnet pack Создает пакет NuGet с кодом. dotnet publish Публикует платформозависимое или автономное приложение .NET. dotnet restore Восстанавливает зависимости для данного приложения. dotnet run Запускает приложение из источника. dotnet sdk check Отображает актуальное состояние установленного пакета SDK и версий среды выполнения. dotnet sln Параметры для добавления, удаления и перечисления проектов в файле решения. dotnet store Сохраняет сборки в хранилище пакетов среды выполнения. dotnet test Выполняет тесты с помощью средства запуска тестов. Ссылки на проекты
Команда Функция dotnet add reference Добавляет ссылку на проект. dotnet list reference Перечисляет ссылки на проекты. dotnet remove reference Удаляет ссылку на проект. Пакеты NuGet
Команда Функция dotnet add package Добавляет пакет NuGet. dotnet remove package Удаляет пакет NuGet. Команды NuGet
Команда Функция dotnet nuget delete Удаляет пакет с сервера или из списка. dotnet nuget push Отправляет пакет на сервер и публикует его. dotnet nuget locals Очищает или перечисляет локальные ресурсы NuGet в кэше HTTP-запросов, временном кэше или папке пакетов, используемой на уровне компьютера. dotnet nuget add source Добавляет источник NuGet. dotnet nuget disable source Отключает источник NuGet. dotnet nuget enable source Включает источник NuGet. dotnet nuget list source Перечисляет все настроенные источники NuGet. dotnet nuget remove source Удаляет источник NuGet. dotnet nuget update source Обновляет источник NuGet. Команды рабочей нагрузки
Команда Функция dotnet workload install Устанавливает дополнительную рабочую нагрузку. dotnet workload list Выводит список установленных рабочих нагрузок. dotnet workload repair Восстанавливает все установленные рабочие нагрузки. dotnet workload search Вывод списка выбранных рабочих нагрузок или всех доступных рабочих нагрузок. dotnet workload uninstall Удаляет рабочую нагрузку. dotnet workload update Переустанавливает все установленные рабочие нагрузки. Команды глобального, установочного и локального средства
Средства — это консольные приложения, которые устанавливаются из пакетов NuGet и вызываются из командной строки. Вы можете писать средства самостоятельно или устанавливать средства, написанные другими. Средства также называются глобальными средствами, средствами пути к средству и локальными средствами. Дополнительные сведения см. в обзоре средств .NET.
Команда Функция dotnet tool install Устанавливает средство на компьютере. dotnet tool list Выводит все глобальные, установочные и локальные средства, установленные на компьютере. dotnet tool search Ищет в NuGet.org средства, в названии или метаданных которых есть указанный поисковый запрос. dotnet tool uninstall Удаляет средство с компьютера. dotnet tool update Обновляет средство, установленное на компьютере. Дополнительные средства
В составе пакета SDK для .NET доступны следующие дополнительные средства:
Средство Функция dev-certs Создает сертификаты разработки и управляет ими. ef Средства командной строки для Entity Framework Core. user-secrets Управляет секретами пользователей для разработки. watch Наблюдатель за файлами, который перезапускает или перезагружает приложение при обнаружении изменений в исходном коде. Дополнительные сведения о каждом средстве можно получить с помощью команды dotnet —help .
Примеры
Создание нового консольного приложения .NET:
dotnet new consoleСборка проекта и его зависимостей в указанном каталоге:
dotnet builddotnet exec myapp.dlldotnet myapp.dllСм. также
- Переменные среды, используемые пакетом SDK для .NET, .NET CLI и средой выполнения .NET
- Файлы конфигурации среды выполнения
- Параметры конфигурации времени выполнения .NET
Удаление среды выполнения .NET и пакета SDK
По мере установки обновленных версий среды выполнения и пакета SDK .NET может потребоваться удалить устаревшие версии .NET с вашего компьютера. Удаление старых версий среды выполнения может изменить среду выполнения, выбранную для запуска приложений общей платформы, как описано в статье о выборе версии .NET.
Нужно ли удалять версию
Выбор версии .NET и совместимость среды выполнения .NET для различных обновлений обеспечивает безопасное удаление предыдущих версий. Обновления среды выполнения .NET совместимы в основной группе версий, например 7.x и 6.x. Кроме того, более поздние выпуски пакета SDK для .NET обычно позволяют создавать приложения, совместимые с предыдущими версиями среды выполнения.
Как правило, требуется только последняя версия пакета SDK и последняя версия исправлений для сред выполнения, необходимых для вашего приложения. Вы можете хранить старые пакеты SDK или версии среды выполнения, например для поддержки приложений на базе project.json. Если у приложения нет конкретных причин, по которым оно должно использовать ранние версии пакета SDK или среды выполнения, вы можете безопасно удалить старые версии.
Определите компоненты, которые нужно установить
Определить версии пакета SDK и среды выполнения, установленных на вашем компьютере, можно с помощью команд в .NET CLI. Используйте dotnet —list-sdks , чтобы просмотреть список установленных пакетов SDK, и dotnet —list-runtimes для просмотра списка сред выполнения. Дополнительные сведения см. в статье Проверка того, установлена ли платформа .NET.
Удаление .NET
.NET использует диалоговое окно «Функции приложений Windows» & для удаления версий среды выполнения и пакета SDK для .NET. На следующем рисунке показан диалоговое окно «Функции приложений&». Вы можете выполнить поиск по запросу core или .net, чтобы отфильтровать и вывести установленные версии .NET.

Выберите все версии, которые необходимо удалить с компьютера, и нажмите кнопку Удалить.
Лучший способ удаления .NET — выполнить действие, противоположное тому, которое использовалось при установке .NET. Конкретные действия зависят от выбранного дистрибутива Linux и метода установки.
Предварительные версии устанавливаются вручную и должны быть удалены вручную. Дополнительные сведения см. в разделе «Скрипты» или «Вручную «.
Дополнительные сведения об установке Red Hat см. в документации по Red Hat для .NET.
При установке .NET можно удалить следующие типы:
- Диспетчер пакетов
- Установка вручную или скриптов
Диспетчер пакетов
Нет необходимости сначала удалять пакет SDK для .NET при его обновлении с помощью диспетчера пакетов, если только не выполняется обновление с предварительной версии, установленной вручную. Диспетчер пакетов update или команды refresh автоматически удалят старую версию после успешной установки более новой версии. Если у вас установлена предварительная версия, удалите ее.
Если вы установили .NET с помощью диспетчера пакетов, для удаления пакета SDK для .NET или среды выполнения используется тот же диспетчер пакетов. .NET поддерживает большинство популярных менеджеров пакетов. Точный синтаксис команды для вашей среды см. в документации по вашему дистрибутиву:
- apt-get(8) используется в системах на основе Debian, включая Ubuntu.
- yum(8) используется в Fedora, CentOS, Oracle Linux и RHEL.
- zypper(8) используется в openSUSE и SUSE Linux Enterprise System (SLES).
- dnf(8) используется в Fedora.
Практически во всех случаях для удаления пакета используется команда remove .
Для установки пакета SDK для .NET в большинстве диспетчеров пакетов используется имя пакета dotnet-sdk , за которым следует номер версии. Начиная с версии 2.1.300 пакета SDK для .NET и версии 2.1 среды выполнения необходимы только основной номер версии и дополнительный номер версии: например, для версии 2.1.300 пакета SDK для .NET можно указать пакет dotnet-sdk-2.1 . В предыдущих версиях необходимо указать полную строку версии, например, для версии 2.1.200 пакета SDK для .NET потребовалось бы указать dotnet-sdk-2.1.200 .
Для компьютеров, на которых установлена только среда выполнения без пакета SDK, используется имя пакета dotnet-runtime- для среды выполнения .NET и aspnetcore-runtime- для стека всей среды выполнения.
Скрипты или вручную
Если вы установили .NET с помощью скрипта dotnet-install или извлекаете tarball, необходимо удалить .NET с помощью ручного метода.
При установке .NET вручную он обычно устанавливается в /usr/share/dotnet/ /usr/lib/dotnet/ каталог или $HOME/.dotnet каталог. Узел SDK, среды выполнения и .NET устанавливаются в отдельные вложенные каталоги. Эти каталоги component содержат каталог для каждой версии .NET. Удалив версии каталогов, вы удалите эту версию .NET из системы. Эти каталоги могут различаться в зависимости от дистрибутива Linux.
Существует три команды, которые можно использовать для обнаружения места установки .NET: dotnet —list-sdks для пакетов SDK, dotnet —list-runtimes для сред выполнения и dotnet —info для всего. Эти команды не перечисляют узел .NET. Чтобы определить, какие узлы установлены, проверка /usr/share/dotnet/host/fxr/ каталоге. Следующий список представляет каталоги определенной версии .NET, где $version переменная представляет версию .NET:
- Пакет SDK: /usr/share/dotnet/sdk/$version/
- Среда выполнения. Среда выполнения основана на конкретных средах выполнения продукта .NET, таких как Microsoft.AspNetCore.All или Microsoft.NETCore.App (среда выполнения .NET специально). Они устанавливаются в /usr/share/dotnet/shared/$product/$version каталог, где $product находится среда выполнения продукта. Например, могут отображаться следующие каталоги:
/usr/share/dotnet/shared/Microsoft.NETCore.App/$version/ /usr/share/dotnet/shared/Microsoft.AspNetCore.App/$version/ /usr/share/dotnet/shared/Microsoft.AspNetCore.All/$version/rm -rf Используйте команду, чтобы удалить версию .NET. Например, чтобы удалить пакет SDK 6.0.406, выполните следующую команду:
sudo rm -rf /usr/share/dotnet/sdk/6.0.406Каталоги версий могут не совпадать с «версией», которую вы удаляете. Отдельные среды выполнения и пакеты SDK, установленные с одним выпуском .NET, могут иметь разные версии. Например, возможно, вы установили ASP.NET Core 8 Runtime, которая установила среду выполнения 8.0.2 ASP.NET Core и среду выполнения 8.0.8 .NET. У каждого из них есть другой каталог с версиями. Дополнительные сведения см. в статье Общие сведения об управлении версиями в .NET.
При установке .NET вручную он обычно устанавливается в /usr/local/share/dotnet/ каталог или $HOME/.dotnet каталог. Узел SDK, среды выполнения и .NET устанавливаются в отдельные вложенные каталоги. Эти каталоги component содержат каталог для каждой версии .NET. Удалив версии каталогов, вы удалите эту версию .NET из системы. Эти каталоги могут различаться в зависимости от дистрибутива Linux.
Существует три команды, которые можно использовать для обнаружения места установки .NET: dotnet —list-sdks для пакетов SDK, dotnet —list-runtimes для сред выполнения и dotnet —info для всего. Эти команды не перечисляют узел .NET. Чтобы определить, какие узлы установлены, проверка /usr/local/share/dotnet/host/fxr/ каталоге. Следующий список представляет каталоги определенной версии .NET, где $version переменная представляет версию .NET:
- Пакет SDK: /usr/local/share/dotnet/sdk/$version/
- Среда выполнения. Среда выполнения основана на конкретных средах выполнения продукта .NET, таких как Microsoft.AspNetCore.All или Microsoft.NETCore.App (среда выполнения .NET специально). Они устанавливаются в /usr/local/share/dotnet/shared/$product/$version каталог, где $product находится среда выполнения продукта. Например, можно увидеть следующие каталоги:
/usr/local/share/dotnet/shared/Microsoft.NETCore.App/$version/dotnet --info /usr/local/share/dotnet/shared/Microsoft.AspNetCore.App/$version/ /usr/local/share/dotnet/shared/Microsoft.AspNetCore.All/$version/rm -rf Используйте команду, чтобы удалить версию .NET. Например, чтобы удалить пакет SDK 6.0.406, выполните следующую команду:
sudo rm -rf /usr/local/share/dotnet/sdk/6.0.406Каталоги версий могут не совпадать с «версией», которую вы удаляете. Отдельные среды выполнения и пакеты SDK, установленные с одним выпуском .NET, могут иметь разные версии. Например, возможно, вы установили ASP.NET Core 8 Runtime, которая установила среду выполнения 8.0.2 ASP.NET Core и среду выполнения 8.0.8 .NET. У каждого из них есть другой каталог с версиями. Дополнительные сведения см. в статье Общие сведения об управлении версиями в .NET.
Если вы используете Компьютер Mac на основе Arm, например один с микросхемой M1, просмотрите пути к каталогу, описанные в статье «Установка .NET на компьютерах Mac на основе Arm».
Средство удаления .NET
Средство удаления .NET ( dotnet-core-uninstall ) позволяет удалять пакеты SDK и среды выполнения .NET из системы. Указать удаляемые версии можно с помощью ряда параметров.
Зависимость Visual Studio от версий пакетов SDK для .NET
До появления Visual Studio 2019 версии 16.3 установщики Visual Studio пользовались автономным установщиком пакета SDK для .NET Core версий 2.1 или 2.2. В результате версии пакета SDK отображаются в диалоговом окне функций приложений & Windows. Удаление пакетов SDK для .NET, установленных Visual Studio с помощью автономного установщика, может нарушить работу Visual Studio. Если после удаления пакетов SDK в Visual Studio возникают проблемы, запустите «Восстановление» для этой конкретной версии Visual Studio. В следующей таблице показаны некоторые зависимости Visual Studio от пакета SDK для версий .NET Core.
Версия Visual Studio Версия пакета SDK для .NET Core Visual Studio 2019 версии 16.2 пакет SDK для NET Core 2.2.4xx, 2.1.8xx Visual Studio 2019 версии 16.1 пакет SDK для .NET Core 2.2.3xx, 2.1.7xx Visual Studio 2019 версии 16.0 пакет SDK для .NET Core 2.2.2xx, 2.1.6xx Visual Studio 2017 версии 15.9 Пакет SDK для .NET Core 2.2.1xx, 2.1.5xx Visual Studio 2017 версии 15.8 Пакет SDK для .NET Core 2.1.4xx Visual Studio 2019 версии 16.3 и выше управляет собственной копией пакета SDK для .NET. По этой причине эти версии пакета SDK больше не отображаются в диалоговом окне «Функции приложений&».
Удаление резервного каталога NuGet
Перед пакетом SDK для .NET Core 3.0 установщики пакета SDK для .NET Core использовали каталог NuGetFallbackFolder для хранения кэша пакетов NuGet. Этот кэш использовался во время таких операций, как dotnet restore или dotnet build /t:Restore . NuGetFallbackFolder находится в папке пакета SDK, в которой установлена .NET. Например, это может быть в C:\Program Files\dotnet\sdk\NuGetFallbackFolder в Windows и по адресу /usr/local/share/dotnet/sdk/NuGetFallbackFolder в macOS.
Возможно, вы хотите удалить этот каталог, если:
- Разработка выполняется только с использованием пакета SDK для .NET Core 3.0 или .NET 5 или более поздних версий.
- Разработка выполняется с использованием пакета SDK для .NET Core версий до 3.0, но вы можете работать в режиме «в сети».
Если вы хотите удалить резервный каталог NuGet, его можно удалить, но для этого потребуются права администратора.
Не рекомендуется удалять каталог dotnet . Это приведет к удалению всех ранее установленных глобальных средств. Также, в Windows:
- Работа Visual Studio 2019 версии 16.3 и более поздних версий будет нарушена. Для восстановления можно запустить Восстановление.
- Если в диалоговом окне функций приложений & есть записи пакета SDK для .NET Core, они будут потеряны.
Совместная работа с нами на GitHub
Источник этого содержимого можно найти на GitHub, где также можно создавать и просматривать проблемы и запросы на вытягивание. Дополнительные сведения см. в нашем руководстве для участников.
Что такое dotnet?
lexx324 , это я тоже читал, но определение мне показалось каким-то размытым.
Лучший ответ
lexx324, это уже далеко не новая технология, ей девять лет.
.net — среда исполнения для приложений. С концептуальной точки зрения и некотором упрощении, её можно рассматривать как некоторую операционную систему, выполняемую под виртуальной машшиной, система типов которой объектно-ориентирована и основана на метаданных. Код, расчитанный на эту «виртуальную машину», называется управляемым. В дотнет реализован автоматический сборщик мусора (а, точнее, на данный момент их существует три штуки) , позволяющий уничтожить явную работу с памятью и математически доказать безопасность кода (единственная вещь, безопасность которой не может быть доказана статическим верификатором, это соблюдение границ массивов, их безопасность контролируется во время выполнения) , хотя управляемый код может быть и небезопасным, то есть поддерживать указатели и явное управление памятью (в дотнет тебуется специальная привиления на выпонение такого кода) . Несмотря на то, что промежуточный код для «виртуальной машины» не является нативным, то есть не может быть выполнен компьютером напрямую, дотнет код никогда не интерпретируется. Компиляция в нативный код осуществляется не статически, а во время выполнения, единица компиляции — метод. Методы компилируются по мере их вызова, скомпилированный код кешируется и используется повторно, что позволяет сделать компиляцию очень быстрой (пример — IDE MSVS, начиная с 2002). Такая схема делает код кросплатформенным и чрезвычайно эффективным (не поверите, но управляемый код зачастую работает быстрее неуправляемого) , поскольку автоматически решается проблема, которая в Linux (если не принимать во внимание философию открытого софта) решается путём поставки приложений в виде исходного кода: приложение компилируется под конкретную программную и аппаратную архитектуру, под конкретный компьютер. Отличие от JVM состоит в том, что система типов .net полна и непротиворечива, а метаданные (в том числе, в виде атрибутов) открывают широчайшие возможности: генерацию кода на этапе компиляции и во время выполнения, синтез новых типов даных в рантайме, контроль над итоговой компиляцией (например, многопоточное приложение может быть скомпилировано так, чтобы количество потоков в нём было в точности равно количеству процессорных ядер) и многое другое. Это по «виртуальной машине», то есть по управляемому коду в отрыве от контекста дотнет. Сама же дотнет содержит массу вкусностей навроде доменов приложений, сборок и модулей, библиотеки FCL, межъязыкового взаимодействия и беспрецедентной безопасности, о которых я здесь рассказывать не стану. Почитайте вдумчиво Overview of the .NET Framework из официальной доки SDK и поймёте, почему за управляемым кодом будущее.Serg719Ученик (162) 8 лет назад
Загрузил, а четкого ответа не увидел!
Serg719, четкий ответ это среда исполнения команд на лету. 🙂
Остальные ответы
dotNet — новая технология Microsoft, направленная на изменение компьютерного мира, а если говорить чуть подробнее, то это набор нескольких инициатив и технологий, программного обеспечения, стандартов и средств разработки. Основное преимущество dotNet для потребителя — реализация единого информационного пространства, соединяющего его с компьютерами и программами, а также ПО между собой. Разработчикам же она позволит просто и быстро создавать нужные продукты.
Источник: http://www.osp.ru/pcworld/2000/12/155809/
Serg719Ученик (162) 8 лет назад
Короче это для разработчиков, так это от ВАС и требовалось!
MaximusУченик (243) 8 лет назад
Напоминает «SkyNet» из «Терминатора» 🙂
dotnet run
dotnet run — выполняет исходный код без дополнительных явных команд компиляции или запуска.
Краткие сведения
dotnet run [-a|--arch ] [-c|--configuration ] [-f|--framework ] [--force] [--interactive] [--launch-profile ] [--no-build] [--no-dependencies] [--no-launch-profile] [--no-restore] [--os ] [--project ] [-r|--runtime ] [--tl:[auto|on|off]] [-v|--verbosity ] [[--] [application arguments]] dotnet run -h|--helpDescription
dotnet run — это удобное средство для запуска приложения из исходного кода одной командой. Это полезно для быстрой последовательной разработки из командной строки. В отношении сборки кода эта команда зависима от команды dotnet build . Любые требования к сборке, например, то, что проект сначала нужно восстановить, применяются и к dotnet run .
dotnet run не учитывает такие аргументы, как /property:property=value , которые учитывает dotnet build .
Выходные файлы записываются в расположение по умолчанию, которым является bin// . Например, если у вас есть приложение netcoreapp2.1 и вы запускаете dotnet run , выходные данные помещаются в bin/Debug/netcoreapp2.1 . При необходимости файлы перезаписываются. Временные файлы помещаются в каталог obj .
Когда в проекте задано несколько платформ, выполнение dotnet run приводит к ошибке, если только для указания платформы не используется параметр -f|—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 Указывает целевую архитектуру. Это сокращенный синтаксис для настройки идентификатора среды выполнения (RID), где указанное значение объединяется с RID по умолчанию. Например, если на компьютере win-x64 указать —arch x86 , идентификатору RID присваивается значение win-x86 . При использовании этого параметра не используйте параметр -r|—runtime . Этот параметр доступен с выпуска .NET 6, предварительная версия 7.
- -c|—configuration Определяет конфигурацию сборки. По умолчанию для большинства проектов используется Debug , но можно переопределить параметры конфигурации сборки в проекте.
- -f|—framework Выполняет сборку и запуск приложения с использованием указанной платформы. Эта платформа должна быть указана в файле проекта.
- —force Принудительное разрешение всех зависимостей, даже если последнее восстановление прошло успешно. Указание этого флага дает тот же результат, что удаление файла project.assets.json.
- -?|-h|—help Выводит описание использования команды.
- —interactive Позволяет команде остановиться и дождаться, пока пользователь выполнит действие или введет данные. Например, чтобы завершить проверку подлинности. Доступно, начиная с пакета SDK для .NET Core 3.0.
- —launch-profile Имя профиля запуска (при его наличии), который следует использовать при запуске приложения. Профили запуска обычно определяются в файле launchSettings.json и, как правило, называются Development , Staging и Production . Дополнительные сведения см. в разделе Работа с несколькими средами.
- —no-build Не выполняет сборку проекта перед запуском. Он также неявно задает флаг —no-restore .
- —no-dependencies При восстановлении проекта с перекрестными ссылками между проектами восстанавливает только корневой проект, но не ссылки.
- —no-launch-profile Не пытается использовать файл launchSettings.json для настройки приложения.
- —no-restore Не выполняет неявное восстановление при выполнении команды.
- —os Позволяет указать целевую операционную систему. Это сокращенный синтаксис для настройки идентификатора среды выполнения (RID), где указанное значение объединяется с RID по умолчанию. Например, если на компьютере win-x64 указать —os linux , идентификатору RID присваивается значение linux-x64 . При использовании этого параметра не используйте параметр -r|—runtime . Доступно с .NET 6.
--property:=;= --property:= --property:=
Короткая форма -p может использоваться для —property . Если аргумент, указанный для параметра, содержит = , -p принимается как короткая формат для —property . В противном случае команда предполагает, что -p является короткой формой для —project . Чтобы передать —property в приложение вместо того, чтобы задать свойство MSBuild, укажите параметр после разделителя синтаксиса — , например:
dotnet run -- --property name=value- —tl:[auto|on|off] Указывает, следует ли использовать средство ведения журнала терминала для выходных данных сборки. Значением по умолчанию является auto то, что сначала проверяет среду перед включением ведения журнала терминалов. Среда проверка проверяет, может ли терминал использовать современные выходные функции и не использует перенаправленные стандартные выходные данные перед включением нового средства ведения журнала. on пропускает проверка среды и включает ведение журнала терминалов. off пропускает среду проверка и использует средство ведения журнала консоли по умолчанию. Средство ведения журнала терминала показывает этап восстановления, за которым следует этап сборки. На каждом этапе в нижней части терминала отображаются строительные проекты. Каждый проект, который создает выходные данные как целевого объекта MSBuild, который в настоящее время создается, так и время, затраченное на этот целевой объект. Эти сведения можно найти, чтобы узнать больше о сборке. После завершения сборки проекта записывается один раздел «сборка завершена», который записывает:
- Имя созданного проекта.
- Целевая платформа (если она используется с несколькими целевыми объектами).
- Состояние этой сборки.
- Основные выходные данные этой сборки (которая гиперссылок).
- Все диагностика, созданные для этого проекта.
Этот параметр доступен начиная с .NET 8.
- -v|—verbosity Задает уровень детализации команды. Допустимые значения: q[uiet] , m[inimal] , n[ormal] , d[etailed] и diag[nostic] . Значение по умолчанию — minimal . Дополнительные сведения см. в разделе LoggerVerbosity.
Примеры
- Выполнение проекта в текущем каталоге:
dotnet rundotnet run --project ./projects/proj1/proj1.csprojdotnet run --property:Configuration=Releasedotnet run --configuration Release -- --helpdotnet run --verbosity m