执行该应用程序所需的库'libhostpolicy.so'未找到。

7

运行dotnet控制台应用程序时,我遇到了这个错误。我从一个目录中运行它,这个目录中复制了.dll和.pdb文件。

这个错误的原因是什么?

4个回答

5
请检查应用程序文件夹的chmod。当我更改文件夹访问模式时,问题得到了解决。我知道这有点奇怪,但有时与此相关 :)。
您必须像这样确定它们;
sudo chown -R yourusername:yourusername /var/www/
sudo setfacl -R -d -m u:yourusername:rwx,g:yourusername:rwx,o::r /var/www/

如果您没有setfacl命令,请通过以下命令安装ACL软件包;
sudo apt install acl

如果这个方法没有生效,请在发布项目时使用以下命令(在Visual Studio的Package Manager Console中):
dotnet publish -c Release --self-contained --runtime linux-x64 -o out

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


1
"

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

如果您正在进行后构建复制,请确保包括这些文件。

"

我正在尝试在microsoft/dotnet:2.1-sdk-alpine上运行paket.exe restore,但是没有project.json文件。有什么建议吗? - mbx

1

当我使用错误的运行时编译dll时,会出现此错误。

linux-arm64系统上运行linux-x64二进制文件会显示此错误,反之亦然。


谢谢。我忘了我是在一台M1 Mac上运行... - Usman Khan

-1

如果您正在运行一个包含多个项目的解决方案,请确保正确的启动项目已设置。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接