2015-10-13 3 views
5

Ich arbeite an einem Windows 10 Store Windows Universal App mit Visual Studio 2015 Community, C# und XAML. Es dekomprimiert eine komprimierte Datei und zeigt darin gefundene Bilder an.Anwendungsinternen Ausnahme in Windows.UI.Xaml.dll

Der Build bietet 0 Warnungen.

Die Debug-Version läuft problemlos unabhängig von der Größe der Eingabedatei.

Die Release-Version läuft gut mit typischen Eingabedateigrößen.

Für große Eingabedateigrößen (~ 100 1-Megapixel-Bilder) stürzt die Versionserstellung konsistent mit 'Nicht behandelte Ausnahme bei 0x55E9A305 (Windows.UI.Xaml.dll) in appname.exe ab: 0xC000027B: Eine anwendungsinterne Ausnahme hat aufgetreten (Parameter: 0x127DC468, 0x00000005). '

Der Absturz tritt auf, wenn der Benutzer versucht, das zweite Bild anzuzeigen. Die gesamte Dekomprimierung ist abgeschlossen und alle Bitmaps wurden zu diesem Zeitpunkt erstellt.

Ich habe mit den Build-Einstellungen fiedled und den Unterschied auf die Option "Kompilieren mit .NET Native Tool Kette" eingegrenzt. Wenn diese Option aktiviert ist, stürzt die Anwendung ab. Wenn diese Option deaktiviert ist, wird die Anwendung ordnungsgemäß ausgeführt.

Alles in allem verwendet die Anwendung etwa 400 MB Heap, obwohl nicht klein ist es nicht in der Nähe der Kapazität der Maschine.

"So deaktivieren Sie die Option!", Höre ich dich weinen. Kästchen deaktiviert, führt zur Zertifizierung Ausfall unten gezeigt:

FAILED 
Supported APIs 


• Error Found: The supported APIs test detected the following errors: 
-API OpenSemaphore in api-ms-win-core-synch-l1-1-0.dll is not supported for this application type. System.Threading.dll calls this API. 
-API CreateSemaphore in api-ms-win-core-kernel32-legacy-l1-1-0.dll is not supported for this application type. System.Threading.dll calls this API. 
-API ExecuteAssembly in uwphost.dll is not supported for this application type. StupidTest.exe calls this API. 
-API DllGetActivationFactory in uwphost.dll is not supported for this application type. StupidTest.exe has an export that forwards to this API. 

Ein leeres Projekt des gleichen Fehler leidet, wenn Compile .Net Mutterwerkzeugkette nicht aktiviert ist.

Also meine Fragen:

Must Universal-Apps Kette Mutter Werkzeug Compile .Net verwenden?

Gibt es eine Dokumentation über die Bedeutung der Parameter in der internen Ausnahme oder an einem anderen Ort, an dem ich Fehler beheben kann?

Kurz gesagt, gibt es einen Ratschlag, um das "Es funktioniert nicht, wenn ausgewählt, aber Sie müssen es auswählen, um zertifizierte" Dilemma ich finde mich in?

+0

Ich habe genau das gleiche Problem, @sillyrobot hast du das gelöst? – pogorman

+0

Wenn Sie dies sehen, versuchen Sie, Ihr ** Microsoft.NETCore.UniversalWindowsPlatform ** nugget-Paket zu aktualisieren, das den neuesten .net-nativen Compiler enthält. Wenn Sie dies normalerweise tun, wird Ihr Problem behoben. –

Antwort

1

Ich hatte auch in den letzten Tagen mit diesem Problem zu kämpfen, und ich habe die Antwort gefunden!

Wenn Sie also Visual Studio 2015 nicht auf Update 1 aktualisiert haben, tun Sie es. Da dieser Fehler ein Fehler im Compiler ist, können Sie nach dem Update das Projekt mit der Option Kompatible .NET-native Werkzeugkette erstellen.

Und ja, diese vier Fehler, die das WACK-Tool annimmt, ist wegen des Kompilierens Ihres Projekts, ohne die .Net native Werkzeugkette Option im Menü Erstellen der Package.appxmanifest-Datei zu überprüfen.