dotnet - управление приложением .NET из командной строки

  • Михаил
  • 12 мин. на прочтение
  • 129
  • 28 Feb 2023
  • 28 Feb 2023

dotnet — универсальный драйвер для интерфейса командной строки .NET Core (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 ]
    [--fx-version ]  [--roll-forward ]
     [arguments]

Команда --roll-forward доступна, начиная с версии .NET Core 3.x. Для .NET Core 2.x следует использовать --roll-forward-on-no-candidate-fx.

 

Описание

Команда dotnet выполняет две функции:

Она предоставляет команды для работы с проектами .NET Core.

Например, команда dotnet build выполняет построение проекта. Каждая команда определяет свои параметры и аргументы. Все команды поддерживают параметр --help, позволяющий вывести краткую справку по их использованию.

Запускает приложения .NET Core.

Для запуска приложения необходимо указать путь к его файлу .dll. Чтобы запустить приложение, необходимо найти и выполнить точку входа, которая в случае использования консольных приложений является методом Main. Например, команда dotnet myapp.dll запускает приложение myapp

 

Параметры

Доступны параметры для dotnet, для выполнения команды, а также для запуска приложения.

 

Параметры для dotnet

Для dotnet доступны следующие параметры. Например, dotnet --info. Выводит сведения о среде.

--info

Выводит подробные сведения об установке .NET Core и среде компьютера, например текущую операционную систему и фиксацию SHA версии .NET Core.

--version

Выводит версию используемого пакета SDK для .NET Core.

--list-runtimes

Выводит список установленных сред выполнения .NET Core. Версия x86 пакета SDK содержит только среды выполнения x86, а в версии x64 пакета SDK содержатся только среды выполнения x64.

--list-sdks

Выводит список установленных пакетов SDK для .NET Core.

-h|--help

Выводит список доступных команд.

 

Параметры пакета SDK для выполнения команды

Для dotnet с командой доступны следующие параметры. Например, dotnet build --help.

-d|--diagnostics

Включает вывод диагностических данных.

-v|--verbosity

Задает уровень детализации команды. Допустимые значения: q[uiet], m[inimal], n[ormal], d[etailed] и diag[nostic]. Поддерживается не во всех командах. Дополнительные сведения см. на странице соответствующей команды.

-h|--help

Выводит на экран документацию для определенной команды, например dotnet build --help.

command options

Для каждой команды определяются относящиеся к ней параметры. Список доступных для команды параметров можно просмотреть на соответствующей ей странице.

 

Параметры среды выполнения

При запуске приложения в dotnet доступны следующие параметры. Например, dotnet myapp.dll --roll-forward Major.

--additionalprobingpath

Путь, содержащий политику проверки и проверяемые сборки.

--additional-deps

Путь к дополнительному файлу .deps.json. Файл deps.json содержит список зависимостей, зависимости компиляции и сведения о версии, используемые для устранения конфликтов сборок.

--depsfile

Путь к файлу deps.json. Файл конфигурации deps.json содержит информацию о зависимостях, необходимых для выполнения приложения. Этот файл создается пакетом SDK для .NET Core.

--runtimeconfig

Путь к файлу runtimeconfig.json. Файл runtimeconfig.json представляет собой файл конфигурации, содержащий параметры среды выполнения. 

--roll-forward Доступно, начиная с пакета SDK для .NET Core 3.0.

Управляет применением наката к приложению. SETTING может иметь одно из следующих значений. Если тип не указан, по умолчанию используется вариант Minor.

  • LatestPatch — накат до версии с наибольшим номером исправления. Отключает накат дополнительных версий.
  • Minor — накат до дополнительной версии со следующим по порядку возрастания номером, если запрошенная дополнительная версия отсутствует. Если запрошенная дополнительная версия присутствует, используется политика LatestPatch.
  • Major — накат до основной версии со следующим по порядку возрастания или дополнительной версии с наименьшим номером, если запрошенная дополнительная версия отсутствует. Если запрошенная основная версия присутствует, используется политика Minor.
  • LatestMinor — накат до дополнительной версии с наибольшим номером, даже если запрошенная дополнительная версия присутствует. Предназначен для сценариев размещения компонентов.
  • LatestMajor — накат до основной версии с наибольшим номером и дополнительной версии с наибольшим номером, даже если запрошенная основная версия присутствует. Предназначен для сценариев размещения компонентов.
  • Disable — накат не выполняется. Привязка только к указанной версии. Эта политика не рекомендуется для общего использования, поскольку отключает возможность наката до последних исправлений. Это значение рекомендуется использовать только для тестирования.

--roll-forward-on-no-candidate-fx Доступно в пакете SDK для .NET Core 2.x.

Определяет поведение, когда требуемая общая платформа недоступна. Параметр N может принимать следующие значения:

  • 0 — отключает увеличение дополнительных версий.
  • 1 — позволяет увеличивать дополнительный номер версии, но не основной. Это поведение установлено по умолчанию.
  • 2 — включает увеличение основных и дополнительных версий.

--fx-version

Версия среды выполнения .NET Core, используемой для запуска приложения.

Этот параметр переопределяет версию первой ссылки на платформу в файле .runtimeconfig.json приложения. Таким образом, он работает правильно только с одной ссылкой на платформу. Если приложение содержит более одной ссылки на платформы, использование этого параметра может приводить к ошибкам.

 

Команды dotnet
Общее

Команда

Функция

dotnet buildВыполняет сборку приложения .NET Core.
dotnet build-serverВзаимодействует с серверами, запущенными сборкой.
dotnet cleanОчищает выходные данные сборки.
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 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.

Команды глобального, установочного и локального средства

Средства — это консольные приложения, которые устанавливаются из пакетов NuGet и вызываются из командной строки. Вы можете писать средства самостоятельно или устанавливать средства, написанные другими. Средства также называются глобальными средствами, средствами пути к средству и локальными средствами. Глобальные и установочные средства доступны, начиная с версии пакета SDK .NET Core 2.1. Локальные средства доступны в пакете SDK для .NET Core, начиная с версии 3.0.

Команда

Функция

dotnet tool installУстанавливает средство на компьютере.
dotnet tool listВыводит все глобальные, установочные и локальные средства, установленные на компьютере.
dotnet tool uninstallУдаляет средство с компьютера.
dotnet tool updateОбновляет средство, установленное на компьютере.

Дополнительные средства

Ряд средств, которые ранее были доступны только для отдельных проектов через DotnetCliToolReference, стали частью пакета SDK для .NET начиная с версии 2.1.300. Эти средства перечислены в следующей таблице.

Средство

Функция

dev-certsСоздает сертификаты разработки и управляет ими.
efСредства командной строки для Entity Framework Core.
sql-cacheСредства командной строки для кэша SQL Server.
user-secretsУправляет секретами пользователей для разработки.
watchЗапускает наблюдатель за файлами, который выполняет команду при изменении файлов.

Дополнительные сведения о каждом средстве можно получить с помощью команды dotnet --help.

 

Примеры

Создание консольного приложения .NET Core:

dotnet new console

Сборка проекта и его зависимостей в указанном каталоге:

dotnet build

Запуск приложения:

dotnet myapp.dll

 

Переменные среды

DOTNET_ROOT, DOTNET_ROOT(x86)

Указывает расположение сред выполнения .NET Core, если оно отличается от задаваемого по умолчанию. В ОС Windows по умолчанию используется расположение C:\Program Files\dotnet. В ОС Linux и macOS по умолчанию используется расположение /usr/share/dotnet. Эта переменная среды используется только при запуске приложений с помощью созданных исполняемых файлов (apphost). При запуске 32-разрядного исполняемого файла в 64-разрядной ОС вместо нее используется DOTNET_ROOT(x86).

DOTNET_PACKAGES

Папка глобальных пакетов. Если значение не задано, то по умолчанию в Unix используется ~/.nuget/packages, а в Windows — %userprofile%\.nuget\packages.

DOTNET_SERVICING

Задает расположение служебного индекса, который будет использоваться общим узлом при загрузке среды выполнения.

DOTNET_NOLOGO

Указывает, отображаются ли сообщения приветствия и данные телеметрии .NET Core при первом запуске. Установите значение true для отключения звука этих сообщений (принимаются значения true, 1 или yes) или установите значение false для разрешения звука (принимаются значения false, 0 или no). Если не задано, по умолчанию используется false и при первом запуске будут отображаться сообщения. Этот флаг не влияет на данные телеметрии (см. DOTNET_CLI_TELEMETRY_OPTOUT, чтобы отменить отправку телеметрии).

DOTNET_CLI_TELEMETRY_OPTOUT

Указывает, собираются ли данные по использованию средств .NET Core для отправки в корпорацию Майкрософт. Установите значение true, чтобы отказаться от функций телеметрии (поддерживаются значения true, 1 или yes). Также можно установить значение false, чтобы согласиться на функции телеметрии (поддерживаются значения false, 0 или no). Если значение не задано, то по умолчанию используется false, то есть функция телеметрии включена.

DOTNET_MULTILEVEL_LOOKUP

Указывает, разрешается ли из глобального расположения среда выполнения .NET Core, общая платформа или пакет SDK. Если не задано, используется значение по умолчанию 1 (логическое значение true). Задайте значение 0 (логическое значение false), чтобы не разрешать эти сущности из глобального расположения и использовать изолированные установки .NET Core. 

DOTNET_ROLL_FORWARD Доступно, начиная с .NET Core версии 3.x.

Определяет поведение наката. Дополнительные сведения см. в описании параметра --roll-forward, приведенном выше в этой статье.

DOTNET_ROLL_FORWARD_TO_PRERELEASE Доступно, начиная с .NET Core версии 3.x.

Если задано значение 1 (включено), поддерживается накат версии выпуска на предварительную версию. По умолчанию (если 0 отключено) при запросе версии выпуска среды выполнения .NET Core накат будет выполняться только для установленных версий выпуска.

DOTNET_ROLL_FORWARD_ON_NO_CANDIDATE_FX Доступно в пакете SDK для .NET Core версии 2.x.

Отключает накат дополнительных версий, если установлено 0

Этот параметр в .NET Core 3.0 заменяется DOTNET_ROLL_FORWARD. Вместо этого следует использовать новый параметр.

DOTNET_CLI_UI_LANGUAGE

Задает язык пользовательского интерфейса CLI с помощью значения языкового стандарта, например en-us. Поддерживаются те же значения, что и для Visual Studio. Дополнительные сведения см. в разделе, посвященном изменению языка установщика, в документации по установке Visual Studio. Применяются правила диспетчера ресурсов .NET, в связи с чем вам не нужно выбирать точное соответствие — можно также выбрать потомков в дереве CultureInfo. Например, если задать значение fr-CA, интерфейс командной строки будет находить и использовать переводы fr. Если задать язык, который не поддерживается, для интерфейса командной строки будет использоваться английский язык.

DOTNET_DISABLE_GUI_ERRORS

Для создаваемых исполняемых файлов с поддержкой графического пользовательского интерфейса отключает всплывающее диалоговое окно, которое обычно выводится для определенных классов ошибок. В таких случаях выполняются только запись в stderr и выход.

DOTNET_ADDITIONAL_DEPS

Эквивалентно параметру --additional-deps интерфейса командной строки.

DOTNET_RUNTIME_ID

Переопределяет обнаруженный RID.

DOTNET_SHARED_STORE

Расположение общего хранилища, которое в некоторых случаях используется для разрешения сборки.

DOTNET_STARTUP_HOOKS

Список сборок, из которого осуществляется загрузка и выполнение перехватчиков запуска.

DOTNET_BUNDLE_EXTRACT_BASE_DIR Доступно, начиная с пакета .NET Core версии 3.x.

Указывает каталог, в который извлекается однофайловое приложение перед выполнением.

COREHOST_TRACE, COREHOST_TRACEFILE, COREHOST_TRACE_VERBOSITY

Управляет диагностической трассировкой из компонентов размещения, таких как dotnet.exe, hostfxr и hostpolicy.

  • COREHOST_TRACE=[0/1] — по умолчанию имеет значение 0 — трассировка отключена. Значение 1 включает диагностическую трассировку.
  • COREHOST_TRACEFILE= — действует, только если трассировка включена параметром COREHOST_TRACE=1. Если включен этот параметр, трассировочные сведения записываются в указанный файл, а в противном случае передаются в stderr. Доступно, начиная с пакета .NET Core версии 3.x.
  • COREHOST_TRACE_VERBOSITY=[1/2/3/4] — по умолчанию имеет значение 4. Этот параметр используется, только если трассировка включена параметром COREHOST_TRACE=1. Доступно, начиная с пакета .NET Core версии 3.x.
  • 4 — записываются все трассировочные данные.
  • 3 — записываются только информационные сообщения, предупреждения и ошибки.
  • 2 — записываются только предупреждения и ошибки.
  • 1 — записываются только сообщения об ошибках.