NativeAOT utilise le préfixe lib pour les sorties de bibliothèque natives sur Unix

À compter de .NET 11, NativeAOT applique le préfixe lib (par exemple, libmylib.so, libmylib.dylib, libmylib.a) par défaut aux sorties de bibliothèque native non exécutables sur les plateformes Unix. Une nouvelle propriété MSBuild, UseNativeLibPrefixvous permet de désactiver ce comportement.

Version introduite

.NET 11 Preview 3

Comportement antérieur

Auparavant, NativeAOT n’appliquait pas le lib préfixe aux sorties de bibliothèque natives sur Unix. Par exemple:

  • Une sortie de bibliothèque partagée a été nommée mylib.so.
  • Une sortie de bibliothèque statique a été nommée mylib.a.

Nouveau comportement

À compter de .NET 11, NativeAOT applique le préfixe lib par défaut aux sorties de bibliothèque native non exécutables sur Unix. Par exemple:

  • Une sortie de bibliothèque partagée est désormais nommée libmylib.so.
  • Une sortie de bibliothèque statique est désormais nommée libmylib.a.

Pour désactiver le nouveau comportement, définissez-le UseNativeLibPrefixfalse dans votre fichier projet :

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

Type de changement cassant

Ce changement est un changement de comportement.

Raison du changement

Le lib préfixe est la convention d’affectation de noms largement acceptée pour les bibliothèques partagées et statiques sur les plateformes Unix. L’application de celui-ci par défaut améliore la cohérence et l’interopérabilité avec d’autres outils et systèmes Unix. Il supprime également la nécessité de solutions de contournement dans .NET pour Android, ce qui nécessite que les fichiers binaires suivent cette convention.

Pour plus d'informations, consultez le pull request d'origine.

Passez en revue vos sorties de build et mettez à jour tous les scripts, processus de déploiement ou configurations qui dépendent des conventions d’affectation de noms précédentes. Plus précisément :

  • Mettre à jour des scripts et des outils : si vos scripts de build ou de déploiement référencent les sorties de bibliothèque native par nom, mettez-les à jour pour prendre en compte le nouveau lib préfixe.

  • Désactivez le cas échéant : si le lib préfixe provoque des problèmes dans votre flux de travail, définissez-le UseNativeLibPrefixfalse dans votre fichier projet :

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

API affectées

Aucun.