.NET Native allgemeine Problembehandlung

In diesem Artikel wird beschrieben, wie Sie potenzielle Probleme beheben, die beim Entwickeln von Apps mit .NET Native auftreten können.

Probleme

  • Problem: Das Buildausgabefenster wird nicht ordnungsgemäß aktualisiert.

    Lösung: Das Buildausgabefenster wird erst aktualisiert, wenn der Build abgeschlossen ist. Buildzeiten können bis zu mehreren Minuten dauern, daher kann eine Verzögerung bei der Aktualisierung der Anzeige auftreten.

  • Problem: Die Verkaufszeit Ihrer App für Arm hat sich erhöht.

    Auflösung: Wenn Sie eine App auf Ihrem Arm-Gerät bereitstellen, wird die .NET Native-Infrastruktur aufgerufen. Bei dieser Kompilierung wird eine große Anzahl von Optimierungen ausgeführt und gleichzeitig sichergestellt, dass nicht statische Semantik, wie Reflektion, weiterhin funktioniert. Darüber hinaus wird der Teil der .NET Framework, den die App verwendet, statisch in verknüpft, um eine optimale Leistung zu erzielen, und muss ebenfalls in nativen Code kompiliert werden. Deshalb dauert die Kompilierung länger.

    Allerdings liegen die Kompilierungszeiten für die meisten Apps auf einem Standardentwicklungscomputer bei Standardkompilierung noch innerhalb einer Minute. In der Regel dauert das Generieren nativer Images für .NET Framework auf einem Standardentwicklungscomputer mehrere Minuten. Selbst bei allen Optimierungen zur Verbesserung des generierten Codes und einschließlich .NET Framework beträgt die App-Erstellungszeit in der Regel ein oder zwei Minuten.

    Wir arbeiten weiterhin an der Verbesserung der Kompilierungsleistung, indem wir Multithreadkompilierung und andere Optimierungen untersuchen.

  • Problem: Sie wissen nicht, ob Ihre App mit .NET Native kompiliert wurde.

    Auflösung: Wenn der .NET Native Compiler aufgerufen wird, werden Sie längere Buildzeiten feststellen, und der Task-Manager zeigt verschiedene .NET Native Komponentenprozesse an, z. B. ILC.exe und nutc_driver.exe.

    Nachdem Sie Ihr Projekt erfolgreich mit .NET Native erstellt haben, finden Sie die Ausgabe unter obj\config\ arch\projectname.ilc\out. Den endgültigen nativen Paketinhalt finden Sie unter bin\arch\config\AppX. Der endgültige native Paketinhalt befindet sich unter \bin\arch\config\AppX, wenn Sie die App bereitgestellt haben.

  • Problem: Die mit .NET Native kompilierte App löst Laufzeitausnahmen aus (in der Regel MissingMetadataException- oder MissingRuntimeArtifactException-Ausnahmen), die beim Kompilieren ohne .NET Native nicht ausgelöst wurden.

    Lösung: Die Ausnahmen werden ausgelöst, da .NET Native weder Metadaten noch Implementierungscode bereitstellt, die andernfalls durch Reflektion verfügbar sind. (Weitere Informationen finden Sie unter .NET Native und Kompilierung.) Um die Ausnahme zu vermeiden, müssen Sie ihrer Laufzeitdirektivendatei (rd.xml) einen Eintrag hinzufügen, damit die .NET Native Toolkette die Metadaten oder den Implementierungscode zur Laufzeit verfügbar machen kann. Es sind zwei Problembehandlungen verfügbar, die den entsprechenden Eintrag für die Laufzeitdirektivendatei zur Beseitigung der Ausnahme generieren:

    Weitere Informationen finden Sie unter Reflektion und .NET Native.

Siehe auch