伍叁随记

标签: dotnet

  • dotnet在Alpine下NativeAOT静态编译

    方法来自https://github.com/dotnet/sdk/issues/37643

    为了能够NativeAOT编译出来的二进制可执行文件兼容不同操作系统,需要采用静态编译方式

    在.csproj文件中,<PropertyGroup>节点下面,添加

    <StaticExecutable>true</StaticExecutable>

    重新执行命令编译

    dotnet publish -c Release -r linux-musl-x64 --self-contained true -p:PublishAot=true

    编译出来的二进制文件就是静态链接的 ELF了

    但issue中也提出,此方法会导致找不到libssl的问题,还需要有另外方法将libssl也静态链接编译进去,否则需要libssl的时候会报错