- Как запустить консольное приложение .NET Core из командной строки
- Visual Studio C#: dotnet run Couldn’t find project to run
- 3 Answers 3
- dotnet run
- Краткий обзор
- Описание
- Неявное восстановление
- Скачивание манифестов рабочих нагрузок
- Параметры
- Примеры
- Команда dotnet
- Краткий обзор
- Описание
- Параметры
- Параметры для dotnet
- Параметры пакета SDK для выполнения команды
- Параметры среды выполнения
- Команды dotnet
- Общее
- Ссылки на проекты
- Пакеты NuGet
- Команды NuGet
- Команды рабочей нагрузки
- Команды глобального, установочного и локального средства
- Дополнительные средства
- Примеры
Как запустить консольное приложение .NET Core из командной строки
У меня есть консольное приложение .NET Core, и я запустился dotnet publish . Однако я не могу понять, как запустить приложение из командной строки. Есть намеки?
Если это приложение, зависящее от фреймворка (по умолчанию), вы запускаете его dotnet yourapp.dll .
Если это автономное приложение, вы запускаете его yourapp.exe в Windows и ./yourapp Unix.
Для получения дополнительной информации о различиях между двумя типами приложений см. Статью .NET Core Application Deployment в .Net Docs.
Вы можете очень легко создать EXE (для Windows) без использования каких-либо загадочных команд сборки. Вы можете сделать это прямо в Visual Studio.
- Щелкните правой кнопкой мыши по проекту консольного приложения и выберите « Опубликовать» .
- Откроется новая страница (снимок экрана ниже)
- Нажмите Настроить .
- Затем измените режим развертывания на автономный или зависимый от платформы . .NET Core 3.0 представляет развертывание с одним файлом, которое представляет собой один исполняемый файл.
- Используйте «зависящий от фреймворка», если вы знаете, что на целевой машине установлена среда выполнения .NET Core, поскольку она будет производить меньше файлов для установки.
- Если вы теперь просматриваете папку bin в проводнике, вы найдете файл .exe.
- Вам нужно будет развернуть исполняемый файл вместе с любыми файлами конфигурации и 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 — накат не выполняется. Привязка только к указанной версии. Эта политика не рекомендуется для общего использования, поскольку отключает возможность наката до последних исправлений. Это значение рекомендуется использовать только для тестирования.
Все параметры, кроме параметра 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:
Сборка проекта и его зависимостей в указанном каталоге:
Источник