Запустите приложение do tnet core 3.1 в Debian9, построите на Windows10, используйте установленную среду выполнения в Debian - PullRequest
0 голосов
/ 25 мая 2020

У меня простой проект HelloWorld. Пытался собрать его на Windows10 и запустить на Debina9:

dotnet build -c Release -r debian.9-x64

Копировал только два файла:

  • HelloWorld
  • HelloWorld .dll

Я не хочу копировать все runtine .dll и .sos, если это возможно. Я получаю сообщение:

Произошла фатальная ошибка. Библиотека libhostpolicy.so, необходимая для выполнения приложения, не была найдена в /usr/share/dotnet '.

На debian я попробовал: locate libhostpolicy.so Результат: /usr/share/dotnet/shared/Microsoft.NETCore.App/3.1.4/libhostpolicy.so

Итак, я добавил файл global. json, чтобы убедиться, что используется версия 3.1.4 ( SDK 3.1.4 ):

{
    "sdk": {
      "version": "3.1.300"
    }
}

И скопировал HelloWorld.deps . json в debian:

{
  "runtimeTarget": {
    "name": ".NETCoreApp,Version=v3.1/debian.9-x64",
    "signature": ""
  },
  "compilationOptions": {},
  "targets": {
    ".NETCoreApp,Version=v3.1": {},
    ".NETCoreApp,Version=v3.1/debian.9-x64": {
      "HelloWorld/1.0.0": {
        "dependencies": {
          "runtimepack.Microsoft.NETCore.App.Runtime.linux-x64": "3.1.4"
        },
        "runtime": {
          "HelloWorld.dll": {}
        }
      },
      "runtimepack.Microsoft.NETCore.App.Runtime.linux-x64/3.1.4": {
        "runtime": {
...

Но проблема все еще остается, что я пропустил / сделал не так?

1 Ответ

0 голосов
/ 25 мая 2020

После выполнения: dotnet publish -c Release -r debian.9-x64 --no-self-contained и копирования нескольких дополнительных файлов в debian, которые я пропустил, прежде чем все заработает.

...