Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Příčina
Projekt má <VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility> nastavení a jedno nebo více odkazovaných sestavení nemá IsAotCompatible atribut metadat sestavení nastavený na true.
Popis pravidla
Když publikujete s nativním AOT pomocí <PublishAot>true</PublishAot> nebo označíte projekt jako AOT kompatibilní s <IsAotCompatible>true</IsAotCompatible>, můžete volitelně povolit ověření toho, že všechna odkazovaná sestavení jsou také opatřena poznámkami pro AOT kompatibilitu. To pomáhá zajistit, aby všechny závislosti v projektu byly opatřeny poznámkami kvůli kompatibilitě AOT.
Pokud chcete toto ověření povolit, nastavte VerifyReferenceAotCompatibility vlastnost do true souboru projektu:
<PropertyGroup>
<PublishAot>true</PublishAot>
<VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility>
</PropertyGroup>
Pokud je tato vlastnost povolena, analyzátor zkontroluje, zda všechna odkazovaná sestavení byla sestavena pomocí <IsAotCompatible>true</IsAotCompatible>, což přidává atribut [assembly: AssemblyMetadata("IsAotCompatible", "True")] na úrovni sestavení.
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.
Jak opravit porušení
Toto upozornění můžete opravit několika způsoby:
- Pokud řídíte zdrojový kód knihovny, aktualizujte odkazovanou knihovnu tak, aby byla sestavena pomocí
<IsAotCompatible>true</IsAotCompatible>. VlastnostIsAotCompatibleoznačuje sestavení jako kompatibilní s nativní AOT a umožňuje analýzu specifickou pro AOT. Toto je upřednostňovaný přístup. - Pokud máte jistotu, že knihovna funguje správně s nativní AOT i bez atributu, zakažte ověření nastavením
<VerifyReferenceAotCompatibility>false</VerifyReferenceAotCompatibility>v souboru projektu.