Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

Console App Publish

Ответ 3

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

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

dotnet publish -c Debug -r win10-x64 

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

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

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

>> MyTestConsoleApp.exe argument-list

Например:

>> MyTestConsoleApp.exe --input some_text -r true

Ответ 4

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

-p:PublishSingleFile=True

Исходный код Однофайловые исполняемые файлы

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

dotnet publish -c Release -r osx-x64 -p:PublishSingleFile=True --self-contained True

Пример Self Contained, Debug 64-битного исполняемого файла Linux:

dotnet publish -c Debug -r linux-x64 -p:PublishSingleFile=True --self-contained True

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

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

<ProjectDir>/bin/<Release or Debug>/netcoreapp3.0/<target-os>/publish/ в Linux, OSX и

<ProjectDir>\bin\<Release or Debug>\netcoreapp3.0\<target-os>\publish\ в Windows.