Partage via


IL2125 : L’assembly référencé n’est pas annoté pour la compatibilité des découpages

La cause

Un projet a <VerifyReferenceTrimCompatibility>true</VerifyReferenceTrimCompatibility> défini et un ou plusieurs assemblys référencés n’ont pas l’attribut IsTrimmable de métadonnées d’assembly défini sur true.

Description de la règle

Lorsque vous publiez une application roglée à l’aide <PublishTrimmed>true</PublishTrimmed> ou marquez votre projet comme étant rognable avec <IsTrimmable>true</IsTrimmable>, vous pouvez éventuellement activer la vérification que tous les assemblys référencés sont également annotés pour la compatibilité des découpages. Cela permet de s’assurer que toutes les dépendances de votre projet sont annotées pour la compatibilité des découpages.

Pour activer cette vérification, définissez la VerifyReferenceTrimCompatibility propriété true dans votre fichier projet :

<PropertyGroup>
  <PublishTrimmed>true</PublishTrimmed>
  <VerifyReferenceTrimCompatibility>true</VerifyReferenceTrimCompatibility>
</PropertyGroup>

Lorsque cette propriété est activée, l’analyseur vérifie que tous les assemblys référencés ont été générés avec <IsTrimmable>true</IsTrimmable>, ce qui ajoute l’attribut [assembly: AssemblyMetadata("IsTrimmable", "True")] au niveau de l’assembly.

Example

// Assembly reference: MyLibrary.dll (built without <IsTrimmable>true</IsTrimmable>)

public class Program
{
    public static void Main()
    {
        var obj = new MyLibrary.SomeClass();
    }
}
warning IL2125: Referenced assembly 'MyLibrary' is not built with `<IsTrimmable>true</IsTrimmable>` and may not be compatible with trimming.

Comment corriger les violations

Vous avez plusieurs options pour corriger cet avertissement :

  • Si vous contrôlez le code source de la bibliothèque, mettez à jour la bibliothèque référencée à générer avec <IsTrimmable>true</IsTrimmable>. Pour obtenir des conseils sur la compatibilité des bibliothèques avec le découpage, consultez Préparer les bibliothèques .NET pour le découpage. Il s’agit de l’approche recommandée.
  • Si vous êtes certain que la bibliothèque fonctionne correctement avec le découpage même sans l’attribut, désactivez la vérification en définissant <VerifyReferenceTrimCompatibility>false</VerifyReferenceTrimCompatibility> dans votre fichier projet.

Voir aussi