Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Oorzaak
Een project is <VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility> ingesteld en een of meer assembly's waarnaar wordt verwezen, hebben het kenmerk metagegevens van de IsAotCompatible assembly niet ingesteld op true.
Beschrijving van regel
Wanneer u publiceert met Native AOT door gebruik te maken van <PublishAot>true</PublishAot> of uw project markeert als AOT-compatibel met <IsAotCompatible>true</IsAotCompatible>, kunt u er optioneel voor kiezen om de verificatie in te schakelen dat alle verwijzende assembly's ook voor AOT-compatibiliteit zijn geannoteerd. Dit helpt ervoor te zorgen dat alle afhankelijkheden in uw project worden geannoteerd voor AOT-compatibiliteit.
Als u deze verificatie wilt inschakelen, stelt u de VerifyReferenceAotCompatibility eigenschap true in op in het projectbestand:
<PropertyGroup>
<PublishAot>true</PublishAot>
<VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility>
</PropertyGroup>
Wanneer deze eigenschap is ingeschakeld, controleert de analyse of alle assembly's waarnaar wordt verwezen, zijn gebouwd met <IsAotCompatible>true</IsAotCompatible>, waarmee het kenmerk [assembly: AssemblyMetadata("IsAotCompatible", "True")] op assemblyniveau wordt toegevoegd aan de 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.
Hoe schendingen op te lossen
U hebt verschillende opties om deze waarschuwing op te lossen:
- Als u controle heeft over de broncode van de bibliotheek, werkt u de bibliotheek waarnaar wordt verwezen bij zodat deze kan worden gebouwd met
<IsAotCompatible>true</IsAotCompatible>. DeIsAotCompatibleeigenschap markeert de assembly als compatibel met systeemeigen AOT en maakt AOT-specifieke analyse mogelijk. Dit is de voorkeursbenadering. - Als u zeker weet dat de bibliotheek correct werkt met Native AOT, zelfs zonder het kenmerk, schakelt u de verificatie uit door de instelling in uw projectbestand te wijzigen
<VerifyReferenceAotCompatibility>false</VerifyReferenceAotCompatibility>.