Aracılığıyla paylaş


IL3058: Başvurulan derlemeye AOT uyumluluğu için açıklama eklenmemiş

Nedeni

Bir proje <VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility> ayarlandı ve referans alınan bir veya daha fazla derlemenin IsAotCompatible derleme meta veri özniteliği true olarak ayarlanmadı.

Kural açıklaması

Projenizi <PublishAot>true</PublishAot> ile AOT uyumlu olarak işaretlediğinizde veya <IsAotCompatible>true</IsAotCompatible> kullanarak yerel AOT ile yayımladığınızda, isteğe bağlı olarak tüm başvurulan derlemelerin de AOT uyumluluğu için ek açıklamalarla anotlanmış olduğunu doğrulamayı etkinleştirebilirsiniz. Bu, projenizdeki tüm bağımlılıkların AOT uyumluluğu için belirtilmesini sağlamaya yardımcı olur.

Bu doğrulamayı etkinleştirmek için proje dosyanızda VerifyReferenceAotCompatibility özelliği true olarak ayarlayın.

<PropertyGroup>
  <PublishAot>true</PublishAot>
  <VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility>
</PropertyGroup>

Bu özellik etkinleştirildiğinde, çözümleyici, derleme düzeyi özniteliği <IsAotCompatible>true</IsAotCompatible>'in derlemeye eklenmesini sağlayan tüm başvurulan derlemelerin [assembly: AssemblyMetadata("IsAotCompatible", "True")] ile derlendiğini denetler.

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.

İhlalleri düzeltme

Bu uyarıyı düzeltmek için çeşitli seçenekleriniz vardır:

  • Kütüphane kaynak kodunu denetlerseniz, kütüphaneyi <IsAotCompatible>true</IsAotCompatible>ile derlenecek şekilde güncelleyin. IsAotCompatible özelliği derlemeyi Yerel AOT ile uyumlu olarak işaretler ve AOT'ye özgü analizi etkinleştirir. Tercih edilen yaklaşım budur.
  • Eğer kütüphanenin özniteliğe ihtiyaç duymadan Native AOT ile doğru çalıştığından eminseniz, proje dosyanıza ayar yaparak doğrulamayı devre dışı bırakın.

Ayrıca bakınız