Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
La cause
Un projet a défini <VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility>, et un ou plusieurs assemblies référencés n'ont pas l'attribut de métadonnées d'assembly IsAotCompatible paramétré à true.
Description de la règle
Lorsque vous publiez avec Native AOT à l’aide <PublishAot>true</PublishAot> ou marquez votre projet comme compatible avec <IsAotCompatible>true</IsAotCompatible>AOT, vous pouvez éventuellement activer la vérification que tous les assemblys référencés sont également annotés pour la compatibilité AOT. Cela permet de s’assurer que toutes les dépendances de votre projet sont annotées pour la compatibilité AOT.
Pour activer cette vérification, définissez la VerifyReferenceAotCompatibility propriété true dans le fichier de votre projet :
<PropertyGroup>
<PublishAot>true</PublishAot>
<VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility>
</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 <IsAotCompatible>true</IsAotCompatible>, ce qui ajoute l’attribut [assembly: AssemblyMetadata("IsAotCompatible", "True")] au niveau de l’assembly.
Example
// Assembly reference: MyLibrary.dll (built without <IsAotCompatible>true</IsAotCompatible>)
public class Program
{
public static void Main()
{
var obj = new MyLibrary.SomeClass();
}
}
warning IL3058: Referenced assembly 'MyLibrary' is not built with `<IsAotCompatible>true</IsAotCompatible>` and may not be compatible with AOT.
Comment corriger les violations
Vous avez plusieurs options pour corriger cet avertissement :
-
Mettez à jour la bibliothèque référencée à générer avec
<IsAotCompatible>true</IsAotCompatible>. Il s’agit de l’approche recommandée si vous contrôlez le code source de la bibliothèque. LaIsAotCompatiblepropriété marque l’assembly comme compatible avec AOT natif et active l’analyse spécifique à AOT. -
Désactivez la vérification en définissant
<VerifyReferenceAotCompatibility>false</VerifyReferenceAotCompatibility>dans votre fichier projet si vous êtes certain que la bibliothèque fonctionne correctement avec AOT natif, même sans l’attribut.