Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La résolution de bibliothèque native Linux n’utilise plus
À compter de .NET 8, les applications Linux ne recherchent plus le netcoredeps sous-répertoire des bibliothèques natives.
Version introduite
.NET 8
Comportement précédent
Dans les versions antérieures de .NET, les applications Linux ont recherché des bibliothèques natives dans un netcoredeps sous-répertoire situé en regard de l’exécutable de l’application. Ce comportement s'appliquait à tous les chargements de bibliothèque native, y compris les appels de plateformes définis par l'utilisateur (p/invokes).
Nouveau comportement
Dans .NET 8 et versions ultérieures, les applications Linux ne recherchent plus le netcoredeps sous-répertoire des bibliothèques natives. La résolution de bibliothèque native suit désormais les mécanismes standard sans dépendre de ce sous-répertoire.
Type de changement cassant
Il s’agit d’un changement comportemental.
Raison de la modification
Le netcoredeps comportement a été introduit à l’origine pour gérer les dépendances complexes sur les bibliothèques tierces dans les versions antérieures de .NET. .NET 8+ ne nécessite plus ce comportement en raison d’une gestion améliorée des dépendances. En outre, le mécanisme n’est pas aligné sur les pratiques recommandées pour les plateformes ELF.
Pour plus d’informations, consultez le problème GitHub #114393.
Action recommandée
Si votre application s’appuie sur le netcoredeps sous-répertoire pour p/invokes ou la résolution de bibliothèque native personnalisée, utilisez les alternatives suivantes :
- Implémentez un mécanisme de résolution personnalisé à l’aide de l’un des éléments suivants :
- Si un
RPATHest requis dans votre déploiement, modifiez explicitement le fichier ELF en utilisant l’utilitairepatchelf.