在运行dotnet控制台应用程序期间,我遇到了此错误。我从一个目录中运行它,该目录将.dll和.pdb文件复制到其中。
此错误的原因是什么?
请检查应用程序文件夹的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 的包管理器控制台中(;
dotnet publish -c Release --self-contained --runtime linux-x64 -o out
它将在您的解决方案目录中创建"out"文件夹,您可以将其包含复制到服务器。
还必须将deps.json
和runtimeconfig.json
复制到调用.dll的目录中。如果没有这些文件,您将遇到此错误。
如果要执行生成后副本,请确保包含这些文件。
当我使用不正确的运行时编译 dll 时,我收到此错误。
在linux-arm64
系统上运行linux-x64
二进制文件将显示此错误,反之亦然。
如果运行的解决方案具有多个项目,请检查以确保设置了正确的启动项目。