找不到执行应用程序所需的库“libhostpolicy.so”

Dav*_*ker 7 .net-core .net-core-2.0

在运行 dotnet 控制台应用程序期间,我遇到了此错误。我从复制了 .dll 和 .pdb 文件的目录运行它。

出现这个错误的原因是什么?

小智 5

请检查应用程序文件夹的 chmod。当我更改文件夹访问模式时,问题得到解决。我知道这有点奇怪,但有时可能与此有关:)

你必须这样确定它们;

sudo chown -R yourusername:yourusername /var/www/
sudo setfacl -R -d -m u:yourusername:rwx,g:yourusername:rwx,o::r /var/www/
Run Code Online (Sandbox Code Playgroud)

如果您没有 setfacl 命令,请通过此命令安装 ACL 包;

sudo apt install acl
Run Code Online (Sandbox Code Playgroud)

如果这不起作用,请在发布项目时使用此命令(在 Visual Studio 的包管理器控制台中);

dotnet publish -c Release --self-contained --runtime linux-x64 -o out
Run Code Online (Sandbox Code Playgroud)

它会在您的解决方案目录中创建“out”文件夹,您可以将其包含的内容复制到服务器。


Dav*_*ker 1

还必须将deps.jsonruntimeconfig.json复制到调用 .dll 的目录中。如果没有这些文件,您将遇到此错误。

如果您正在进行构建后副本,请确保包含这些文件。