Как вы компилируете и запускаете. NET Core Services для Linux? - PullRequest
0 голосов
/ 22 февраля 2020

Я пытаюсь разработать C# Worker Service с. NET Core 3.1 и запустить его в качестве службы на компьютере с Ubuntu.

Я нашел это руководство для установите Worker Services на Linux, но я получаю ошибки (см. скриншот) при попытке запустить службу.

В руководстве не указано, как скомпилировать решение для Linux, поэтому я нашел этот пост и скомпилировал пакет, используя dotnet build --runtime ubuntu.18.04-x64. В результате получается папка с моим Приложением и без расширения файла, а также длинный список DLL-файлов.

Это правильный способ публикации Worker Services или вообще. NET Ориентация на основные приложения Linux, на Windows машине? Мне не удалось найти официальную документацию или другие ресурсы о том, как правильно это сделать.

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

enter image description here

1 Ответ

1 голос
/ 22 февраля 2020

Просмотр документации для dotnet run ubuntu.18.04-x64 выглядит как неправильное время выполнения: https://docs.microsoft.com/en-us/dotnet/core/rid-catalog

В списке указаны только общие значения. Последнюю и полную версию см. В файле runtime. json в репозитории dotnet / runtime. Устройства с дистрибутивом, не указанным ниже, могут работать с одним из портативных RID. Например, устройства Raspberry Pi с дистрибутивом Linux, не указанным в списке, могут быть предназначены для linux -arm.

  • Portable (. NET Core 2.0 или более поздние версии )

    • linux -x64 (большинство настольных дистрибутивов, таких как CentOS, Debian, Fedora, Ubuntu и производные)

    • linux - musl-x64 (Легкие дистрибутивы, использующие musl как Alpine Linux)

    • linux -arm (Linux дистрибутивы, работающие на ARM как Raspberry Pi)
  • Red Hat Enterprise Linux
    • rhel-x64 (заменено linux -x64 для RHEL выше версии 6)
    • rhel.6-x64 (. NET Core 2.0 или более поздние версии)
  • Tizen (. NET Core 2.0 или более поздние версии)
    • tizen
    • tizen.4.0.0
    • tizen.5.0.0

поэтому вместо dotnet build --runtime ubuntu.18.04-x64 попробуйте dotnet build --runtime linux-x64

...