在Debian9上运行dotnet core 3.1应用程序,在Windows10上构建,在Debian上使用已安装的运行时

时间:2020-05-25 14:58:06

标签: .net-core .net-core-3.1

我有一个简单的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 :(得分:0)

这样做之后:dotnet publish -c Release -r debian.9-x64 --no-self-contained 并将一些多余的文件复制到Debian上,而一切都无法进行。