Anmerkung
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen, dich anzumelden oder die Verzeichnisse zu wechseln.
Der Zugriff auf diese Seite erfordert eine Genehmigung. Du kannst versuchen , die Verzeichnisse zu wechseln.
Ursache
Ein Projekt hat <VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility> festgelegt, und bei mindestens einer referenzierten Assembly ist das Assemblymetadaten-Attribut nicht auf IsAotCompatible festgelegt.
Regelbeschreibung
Wenn Sie mit Native AOT veröffentlichen, indem Sie <PublishAot>true</PublishAot> verwenden, oder Ihr Projekt als AOT-kompatibel mit <IsAotCompatible>true</IsAotCompatible> kennzeichnen, können Sie optional die Überprüfung aktivieren, dass alle referenzierten Assemblies auch auf AOT-Kompatibilität annotiert sind. Dadurch wird sichergestellt, dass alle Abhängigkeiten in Ihrem Projekt auf AOT-Kompatibilität annotiert werden.
Um diese Überprüfung zu aktivieren, legen Sie die Eigenschaft VerifyReferenceAotCompatibility in der Projektdatei auf true fest:
<PropertyGroup>
<PublishAot>true</PublishAot>
<VerifyReferenceAotCompatibility>true</VerifyReferenceAotCompatibility>
</PropertyGroup>
Wenn diese Eigenschaft aktiviert ist, überprüft der Analyzer, ob alle referenzierten Assemblys mit <IsAotCompatible>true</IsAotCompatible> erstellt wurden, was das Attribut [assembly: AssemblyMetadata("IsAotCompatible", "True")] auf Assemblyebene zur Assembly hinzufügt.
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.
Wie man Verstöße behebt
Sie haben mehrere Optionen, um diese Warnung zu beheben:
- Wenn Sie den Quellcode der Bibliothek steuern, aktualisieren Sie die referenzierte Bibliothek, um sie mit
<IsAotCompatible>true</IsAotCompatible>zu erstellen. DieIsAotCompatibleEigenschaft kennzeichnet die Assembly als kompatibel mit Native AOT und ermöglicht AOT-spezifische Analysen. Dies ist der bevorzugte Ansatz. - Wenn Sie sicher sind, dass die Bibliothek auch ohne das Attribut ordnungsgemäß mit Native AOT funktioniert, deaktivieren Sie die Überprüfung indem Sie es in Ihrer Projektdatei festlegen
<VerifyReferenceAotCompatibility>false</VerifyReferenceAotCompatibility>.