Меню

Dotnet run не работает

Как запустить консольное приложение .NET Core из командной строки

У меня есть консольное приложение .NET Core, и я запустился dotnet publish . Однако я не могу понять, как запустить приложение из командной строки. Есть намеки?

Если это приложение, зависящее от фреймворка (по умолчанию), вы запускаете его dotnet yourapp.dll .

Если это автономное приложение, вы запускаете его yourapp.exe в Windows и ./yourapp Unix.

Для получения дополнительной информации о различиях между двумя типами приложений см. Статью .NET Core Application Deployment в .Net Docs.

Вы можете очень легко создать EXE (для Windows) без использования каких-либо загадочных команд сборки. Вы можете сделать это прямо в Visual Studio.

  1. Щелкните правой кнопкой мыши по проекту консольного приложения и выберите « Опубликовать» .
  2. Откроется новая страница (снимок экрана ниже)
  3. Нажмите Настроить .
  4. Затем измените режим развертывания на автономный или зависимый от платформы . .NET Core 3.0 представляет развертывание с одним файлом, которое представляет собой один исполняемый файл.
  5. Используйте «зависящий от фреймворка», если вы знаете, что на целевой машине установлена ​​среда выполнения .NET Core, поскольку она будет производить меньше файлов для установки.
  6. Если вы теперь просматриваете папку bin в проводнике, вы найдете файл .exe.
  7. Вам нужно будет развернуть исполняемый файл вместе с любыми файлами конфигурации и DLL.

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

Предположим, у вас есть простое консольное приложение с именем MyTestConsoleApp. Откройте консоль диспетчера пакетов и выполните следующую команду:

-c флаг означает, что вы хотите использовать конфигурацию отладки (в другом случае вы должны использовать значение Release) — r флаг означает, что ваше приложение будет работать на платформе Windows с архитектурой x64.

Когда процедура публикации будет завершена, вы увидите файл * .exe, расположенный в каталоге bin / Debug / publish.

Теперь вы можете вызвать его с помощью инструментов командной строки. Поэтому откройте окно CMD (или терминал), перейдите в каталог, где находится ваш файл * .exe, и напишите следующую команду:

С помощью dotnetcore3.0 вы можете упаковать все решение в один исполняемый файл, используя PublishSingleFile свойство

Пример Self Contained , Release OSX исполняемого файла:

Пример Self Contained , Debug Linux 64bit исполняемым:

Сборка Linux не зависит от дистрибутива, и я обнаружил, что они работают на Ubuntu 18.10, CentOS 7.7 и Amazon Linux 2.

Автономный исполняемый файл включает Dotnet Runtime, и Runtime не требует установки на целевой машине. Опубликованные исполняемые файлы сохраняются в:

/bin/ /netcoreapp3.0/ /publish/ в Linux, OSX и

\bin\ \netcoreapp3.0\ \publish\ на винде.

Используя CMD, вы можете запустить консольный проект .net core, если на вашем компьютере установлен .net core SDK:

Чтобы запустить консольный проект с помощью командной строки Windows, выберите конкретный путь из своего каталога и введите следующую команду

Источник

Visual Studio C#: dotnet run Couldn’t find project to run

Hi I’m new to programming and am trying to run a C# project in Visual Studio 2019. The project runs fine when I press the run button at the top of the window but the issue is I need it to run using dotnet run but I get the error Couldn’t find project to run. Ensure a project exists in C:\directories

I have to get it to run this way because I am trying to create a program that can take user input. Currently I’m watching a tutorial series so I am trying to use Console.Readline();

I can provide more information if necessary, I am new to programming and am not exactly sure what information someone may need to help me.

3 Answers 3

Use dotnet run «C:\path\to\my.csproj» where you replace the path with the actual path to your project file.

Are you running dotnet run in the directory of the application? Do cd C:\path\ then dotnet run «test.exe» . Or just do dotnet run «C:\path\test.exe» . Obviously change C:\path to your actual path.

1.Please make sure your project is .NET Core 2.x or later versions.
2.Discover the storage location of ConsoleApp1.csproj.

(Your project storage location is C:\Users\path\source\repos\ConsoleApp1\ConsoleApp1)

According to your description, I built a similar project. The execution process is as follows:

Источник

dotnet run

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

dotnet run — выполняет исходный код без дополнительных явных команд компиляции или запуска.

Краткий обзор

Описание

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 см. в разделе Средства интерфейса командной строки (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 , от аргументов для выполняемого приложения. Все аргументы после разделителя передаются выполняемому приложению.

Указывает целевую архитектуру. Это сокращенный синтаксис для настройки идентификатора среды выполнения (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 os , идентификатору RID присваивается значение os-x64 . При использовании этого параметра не используйте параметр -r|—runtime . Этот параметр доступен начиная с выпуска .NET 6 предварительной версии 7.

Задает путь к запускаемому файлу проекта (имя папки или полный путь). Если значение не задано, по умолчанию используется текущий каталог.

Сокращение -p для —project является устаревшим начиная с предварительной версии пакета SDK для .NET 6. В течение ограниченного времени, начиная с версии .NET 6 RC1 SDK, -p по-прежнему можно использовать для —project , несмотря на предупреждение о прекращении поддержки. Если аргумент, указанный для параметра, не содержит = , команда принимает -p в качестве короткой формы для —project . В противном случае команда предполагает, что -p является короткой формой для —property . Эти гибкие возможности использования -p для —project будут доступны в .NET 7.

—property: =

Задает одно свойство MSBuild или несколько. Укажите несколько свойств, разделяя их точкой с запятой, или укажите их путем повтора команды.

Короткая форма -p может использоваться для —property . Если аргумент, указанный для параметра, содержит = , -p принимается как короткая формат для —property . В противном случае команда предполагает, что -p является короткой формой для —project .

Читайте также:  Не работает центральный замок хендай гетц причины

Чтобы передать —property в приложение вместо того, чтобы задать свойство MSBuild, укажите параметр после разделителя синтаксиса — , например:

-r|—runtime

Задает целевую среду выполнения для восстановления пакетов. Список идентификаторов сред выполнения (RID) см. в каталоге RID. Короткий параметр -r доступен, начиная с пакета SDK для .NET Core 3.0.

-v|—verbosity

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

Примеры

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

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

Выполните проект в текущем каталоге, указав конфигурацию выпуска.

Выполнение проекта в текущем каталоге (аргумент —help в этом примере передается приложению, так как используется пустой параметр — ):

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

Источник

Команда dotnet

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

dotnet — универсальный драйвер для интерфейса командной строки .NET (CLI).

Краткий обзор

Чтобы получить сведения о среде и доступных командах, выполните следующие действия:

Выполнение команды (требуется установка пакета SDK):

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

Описание

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

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

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

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

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

Параметры

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

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

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

—info

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

—version

Отображает версию пакета SDK для .NET, используемую командами dotnet. Включает эффекты любого файла global.json.

—list-runtimes

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

—list-sdks

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

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

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

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

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

—runtimeconfig

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

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

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

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

Все параметры, кроме параметра Disable , будут использовать версию с последним доступным исправлением.

Поведение наката также можно настроить в свойствах файла проекта, файла конфигурации среды выполнения и переменной среды. Дополнительные сведения см. в разделе Накат основной версии среды выполнения.

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

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

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

Дополнительные сведения о накате можно найти в этой статье.

Начиная с .NET Core 3.0, этот параметр заменяется параметром —roll-forward , который следует использовать вместо него.

—fx-version

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

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

Команды dotnet

Общее

Команда Функция
dotnet build Выполняет сборку приложения .NET.
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 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. Глобальные и установочные средства доступны, начиная с версии пакета SDK .NET Core 2.1. Локальные средства доступны в пакете SDK для .NET Core, начиная с версии 3.0.

Команда Функция
dotnet tool install Устанавливает средство на компьютере.
dotnet tool list Выводит все глобальные, установочные и локальные средства, установленные на компьютере.
dotnet tool search Ищет в NuGet.org средства, в названии или метаданных которых есть указанный поисковый запрос.
dotnet tool uninstall Удаляет средство с компьютера.
dotnet tool update Обновляет средство, установленное на компьютере.

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

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

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

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

Примеры

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

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

Источник

Adblock
detector