问题描述
我正在创建一个我已经构建的 C# 应用程序,或者按照 csproj 中的此 XML 为 linux-x64“发布”:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<Configuration>release</Configuration>
<InvariantGlobalization>true</InvariantGlobalization>
<TargetFramework>net5.0</TargetFramework>
<PublishSingleFile>true</PublishSingleFile>
<SelfContained>true</SelfContained>
<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
<PublishTrimmed>true</PublishTrimmed>
<PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>
<ItemGroup>
<packagereference Include="mongocsharpdriver" Version="2.11.6" />
<packagereference Include="MongoDB.Bson" Version="2.11.6" />
<packagereference Include="MongoDB.Driver" Version="2.11.6" />
<packagereference Include="MongoDB.Driver.Core" Version="2.11.6" />
<packagereference Include="PCSC" Version="5.0.0" />
<packagereference Include="PCSC.Iso7816" Version="5.0.0" />
</ItemGroup>
</Project>
我使用的是 Linux Ubuntu 20.04。
我使用 CLI 将应用程序发布到文件夹 bin/release 等。当我测试它时,它运行得很好。现在,对于主分支,我删除了所有代码。将目录 release 上移到主目录,并推送到 GIT。
每当您现在尝试运行它时,都会出现以下错误:
./Appname: relocation error: ./Appname: symbol pthread_attr_init version GLIBC_2.2.5 not defined in file libpthread.so.0 with link time reference
由于我不是本地 C# 开发人员并且仍在学习,我完全不知道这是关于什么的,除了它显然与我移动目录有关(我问?)
有谁知道这个错误是什么或它来自哪里,如何修复它,以及如何防止将来发生?因为我希望能够发布没有错误的应用程序。
已解决
我找到了答案。构建目录中有另一个名为“publish”的目录,其中包含工作可执行文件。换句话说。 exe 位于文件夹 release/net5.0/linux-x64/publish
而不是 release/net5.0/linux-x64
中。当我从该目录运行可执行文件时,一切正常。对于其他新手:它位于文件夹 release
中,因为我的 XML 项目文件的 Configuration field
设置为 release
。默认情况下,它位于文件夹 Debug
中。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)