Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Motivo
Um projeto tem <VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility> definido, e uma ou mais assemblies referenciadas não têm o atributo de metadados IsAotCompatible definido como true.
Descrição da regra
Quando publicar com AOT nativo usando <PublishAot>true</PublishAot> ou marcar o seu projeto como compatível com AOT usando <IsAotCompatible>true</IsAotCompatible>, pode opcionalmente ativar a verificação de que todos os conjuntos referenciados também estão anotados para compatibilidade com AOT. Isto ajuda a garantir que todas as dependências do seu projeto são anotadas para compatibilidade com AOT.
Para permitir esta verificação, defina a VerifyReferenceAotCompatibility propriedade para true no ficheiro do seu projeto:
<PropertyGroup>
<PublishAot>true</PublishAot>
<VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility>
</PropertyGroup>
Quando esta propriedade está ativada, o analisador verifica se todas as montagens referenciadas foram construídas com <IsAotCompatible>true</IsAotCompatible>, o que adiciona o atributo [assembly: AssemblyMetadata("IsAotCompatible", "True")] ao nível de montagem ao conjunto.
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.
Como corrigir violações
Tem várias opções para corrigir este aviso:
- Se controlar o código-fonte da biblioteca, atualize a biblioteca referenciada para ser construída com
<IsAotCompatible>true</IsAotCompatible>. EstaIsAotCompatiblepropriedade marca o assembly como compatível com Native AOT e permite uma análise específica do AOT. Esta é a abordagem preferida. - Se tiveres confiança de que a biblioteca funciona corretamente com o AOT nativo mesmo sem o atributo, desativa a verificação ao definir
<VerifyReferenceAotCompatibility>false</VerifyReferenceAotCompatibility>o ficheiro do teu projeto.