Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Det är viktigt att testa versionsversionerna av din universella Windows-plattformsapp på deras målplattformar eftersom konfigurationerna för felsökning och lansering är helt olika. Som standard använder felsökningskonfigurationen .NET Core-körningen för att kompilera din app, men versionskonfigurationen använder .NET Native för att kompilera appen till inbyggd kod.
Viktigt!
Information om hur du hanterar MissingMetadataException, MissingInteropDataExceptionoch MissingRuntimeArtifactException undantag som du kan stöta på när du testar släppversionerna av din app, se 'Steg 4: Lös metadata som saknas manuellt' i avsnittet Komma igång, samt Reflection och .NET Native och Runtime Directives (rd.xml) Configuration File Reference.
Felsöka och versionsbyggen
När felsökningsversionen körs mot .NET Core-körningen har den inte kompilerats till intern kod. Detta gör alla tjänster som normalt tillhandahålls av körtiden tillgängliga till din app.
Å andra sidan kompilerar releaseversionen till native kod för sina målplattformar, tar bort de flesta beroenden av externa körmiljöer och bibliotek, och optimerar koden kraftigt för maximal prestanda.
När du felsöker versionsbyggnader som kompileras genom att använda .NET Native:
Du använder .NET Native-felsökningsmotorn, som skiljer sig från vanliga .NET-felsökningsverktyg.
Storleken på ditt körbara program minskas så mycket som möjligt. Ett sätt som .NET Native minskar storleken på en körbar fil är genom att kraftigt minska körningsundantagsmeddelanden, ett ämne som diskuteras mer i detalj i avsnittet Runtime-undantagsmeddelanden.
Koden är mycket optimerad. Det innebär att inlining används när det är möjligt. (Inlining flyttar kod från externa rutiner till anropsrutinen.) Det faktum att .NET Native tillhandahåller en specialiserad körmiljö och implementerar aggressiv inlining påverkar anropsstacken som visas vid felsökning. Mer information finns i avsnittet Runtime-anropsstacken.
Anmärkning
Du kan styra om felsöknings- och versionsversionerna kompileras med .NET Native-verktygskedjan genom att kontrollera eller avmarkera rutan Kompilera med .NET Native-verktygskedjan . Microsoft Store kompilerar dock alltid produktionsversionen av din app med .NET Native-verktygskedjan.
Körningsundantagsmeddelanden
För att minimera programmets körbara storlek innehåller .NET Native inte den fullständiga texten i undantagsmeddelanden. Därför kanske körningsundantag som genereras i release-versioner inte visar den fullständiga texten av undantagsmeddelanden. I stället kan texten bestå av en delsträng tillsammans med en länk att följa för mer information. Undantagsinformationen kan till exempel visas som:
Exception thrown: '$16_System.AggregateException' in Unknown Module.
Additional information: AggregateException_ctor_DefaultMessage
If there is a handler for this exception, the program may be safely continued.
Om du behöver det fullständiga undantagsmeddelandet kör du felsökningsversionen i stället. Till exempel kan den tidigare undantagsinformationen från versionsversionen visas på följande sätt i felsökningsversionen:
Exception thrown: 'System.AggregateException' in NativeApp.exe.
Additional information: Value does not fall within the expected range.
Körningsanropsstack
På grund av inlining och andra optimeringar kan anropsstacken som visas av en app som kompilerats av .NET Native-verktygskedjan inte hjälpa dig att tydligt identifiera orsaken till ett körtidsundantag.
Kör felsökningsversionen i stället för att hämta hela stacken.