运行已发布的二进制文件时找不到hostfxr库

时间:2017-10-16 08:33:38

标签: .net-core ubuntu-16.04

我正在尝试在Ubuntu上编译和运行一个独立的C#二进制文件,但是我遇到了安装库的问题。我的理解是,如果我为特定的运行时发布,那么它应该能够在不安装.so文件和二进制文件的情况下运行,或者我做出错误的假设?

当我尝试在publish目录之外运行应用程序时,我得到:

  

无法解析库符号hostfxr_main,错误:./ neoj:undefined symbol:hostfxr_main
  分段失败(核心转储)

如果我列出已安装的dotnet软件包,它目前看起来像这样:

  

dotnet-host / xenial,现在2.0.0-preview2-25407-01-1 amd64 [已安装,自动]
  dotnet-hostfxr-2.0.0 / xenial,现在2.0.0-1 amd64 [已安装,自动]
  dotnet-runtime-2.0.0 / xenial,现在2.0.0-1 amd64 [已安装,自动]
  dotnet-sdk-2.0.2 / xenial,现在2.0.2-1 amd64 [已安装]

似乎存在一些差异,但如果我安装了SDK,这些差异就会自动进入。

如果我使用ldconfig -p | grep libhostfxr来检查库,那么可以预见,它不会返回任何结果。我尝试在配置文件中添加/usr/share/dotnet/,在该目录中添加符号链接到.so文件并更新缓存(sudo ldconfig),这会导致库被添加到缓存中,但是尝试运行命令时仍然没有快乐。

我尝试通过将运行时框架版本更新为2.0.0来解决此问题,这导致了更友好的错误消息,但结果相同。

源文件是all here,以防它不明显!

0 个答案:

没有答案