Partilhar via


O NativeAOT usa o prefixo lib para saídas nativas de bibliotecas no Unix

A partir de .NET 11, o NativeAOT aplica por defeito o prefixo lib (por exemplo, libmylib.so, libmylib.dylib, libmylib.a) às saídas nativas de bibliotecas não executáveis em plataformas Unix. Uma nova propriedade MSBuild, UseNativeLibPrefix, permite-lhe optar por não aderir a este comportamento.

Versão introduzida

.NET 11 Prévia 3

Comportamento anterior

Anteriormente, o NativeAOT não aplicava o lib prefixo às saídas nativas das bibliotecas no Unix. Por exemplo:

  • Uma saída de biblioteca partilhada foi chamada mylib.so.
  • Uma saída de biblioteca estática foi chamada mylib.a.

Novo comportamento

A partir de .NET 11, o NativeAOT aplica o prefixo lib por defeito a saídas de bibliotecas nativas não executáveis no Unix. Por exemplo:

  • Uma saída de biblioteca partilhada é agora chamada libmylib.so.
  • Uma saída de biblioteca estática é agora chamada libmylib.a.

Para optar por não participar no novo comportamento, defina UseNativeLibPrefix para false no seu ficheiro de projeto:

<PropertyGroup>
  <UseNativeLibPrefix>false</UseNativeLibPrefix>
</PropertyGroup>

Tipo de mudança disruptiva

Esta alteração é de natureza comportamental .

Motivo da mudança

O lib prefixo é a convenção de nomenclatura amplamente aceite para bibliotecas partilhadas e estáticas em plataformas Unix. Aplicar por padrão melhora a consistência e a interoperabilidade com outras ferramentas e sistemas baseados em Unix. Também elimina a necessidade de soluções alternativas no .NET para Android, que exige que os binários sigam esta convenção.

Para mais detalhes, consulte o pull request original.

Revê os seus resultados de compilação e atualiza quaisquer scripts, processos de implementação ou configurações que dependam das antigas convenções de nomenclatura. Specifically:

  • Atualizar scripts e ferramentas: Se os seus scripts de build ou deployment referenciarem as saídas nativas das bibliotecas pelo nome, atualize-as para ter em conta o novo lib prefixo.

  • Optar por não participar se necessário: Se o lib prefixo causar problemas no seu fluxo de trabalho, defina UseNativeLibPrefix para false no ficheiro do projeto:

    <PropertyGroup>
      <UseNativeLibPrefix>false</UseNativeLibPrefix>
    </PropertyGroup>
    

APIs afetadas

Nenhum.