Condividi tramite


NativeAOT usa il prefisso lib per gli output della libreria nativa in Unix

A partire da .NET 11, NativeAOT applica il prefisso lib (ad esempio, libmylib.so, libmylib.dylib, libmylib.a) per impostazione predefinita agli output della libreria nativa non eseguibile nelle piattaforme Unix. Una nuova proprietà MSBuild, UseNativeLibPrefix, consente di rifiutare esplicitamente questo comportamento.

Versione introdotta

.NET 11 Preview 3

Comportamento precedente

In precedenza, NativeAOT non applicava il lib prefisso agli output della libreria nativa in Unix. Per esempio:

  • Un output della libreria condivisa è stato denominato mylib.so.
  • Un output della libreria statica è stato chiamato mylib.a.

Nuovo comportamento

A partire da .NET 11, NativeAOT applica il prefisso lib per impostazione predefinita agli output della libreria nativa non eseguibile in Unix. Per esempio:

  • Un output della libreria condivisa è ora denominato libmylib.so.
  • L'output della libreria statica è ora denominato libmylib.a.

Impostare UseNativeLibPrefix su false nel file di progetto per rifiutare esplicitamente il nuovo comportamento.

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

Tipo di cambiamento che interrompe la compatibilità

Questa modifica è una modifica funzionale.

Motivo della modifica

Il lib prefisso è la convenzione di denominazione ampiamente accettata per le librerie condivise e statiche sulle piattaforme Unix. L'applicazione per impostazione predefinita migliora la coerenza e l'interoperabilità con altri strumenti e sistemi basati su Unix. Rimuove inoltre la necessità di soluzioni alternative in .NET per Android, che richiede che i file binari seguano questa convenzione.

Per altri dettagli, vedere la richiesta pull originale.

Esaminare gli output di compilazione e aggiornare gli script, i processi di distribuzione o le configurazioni che dipendono dalle convenzioni di denominazione precedenti. In particolare:

  • Aggiornare script e strumenti: se gli script di compilazione o distribuzione fanno riferimento agli output della libreria nativa in base al nome, aggiornarli in modo da tenere conto del nuovo lib prefisso.

  • Disattivare se necessario: se il lib prefisso causa problemi nel flusso di lavoro, impostare UseNativeLibPrefix su false nel file di progetto:

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

Le API interessate

Nessuno.