Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Na cílových platformách je důležité otestovat buildy verzí vaší aplikace Univerzální platformy Windows, protože konfigurace ladění a vydávání verzí se úplně liší. Ve výchozím nastavení konfigurace ladění používá modul runtime .NET Core ke kompilaci aplikace, ale konfigurace vydané verze k kompilaci aplikace do nativního kódu používá .NET Native.
Důležité
Informace o práci s výjimkami MissingMetadataException, MissingInteropDataExceptiona MissingRuntimeArtifactException, se kterými se můžete setkat při testování verzí aplikace, viz "Krok 4: Ruční řešení chybějících metadat" v tématu Začínáme, a také v Reflexe a .NET Native a v referenčním přehledu ke konfiguračnímu souboru pro direktivy modulu runtime (rd.xml).
Ladění a vydávání buildů
Když se ladicí sestavení spustí s prostředím .NET Core, není zkompilováno do nativního kódu. Díky tomu jsou všechny služby obvykle poskytované modulem runtime dostupné pro vaši aplikaci.
Na druhou stranu se verze pro vydání kompiluje do nativního kódu pro cílové platformy, odstraní většinu závislostí na externích runtime prostředích a knihovnách a výrazně optimalizuje kód pro maximální výkon.
Při ladění sestavení vydaných verzí kompilovaných pomocí .NET Native:
Používáte ladicí modul .NET Native, který se liší od běžných ladicích nástrojů .NET.
Velikost spustitelného souboru se sníží co nejvíce. Jedním ze způsobů, jak .NET Native zmenšuje velikost spustitelného souboru, je podstatné zkrácení zpráv o výjimkách modulu runtime, což je téma podrobněji popsáno v oddíle Zprávy o výjimkách modulu runtime.
Váš kód je silně optimalizovaný. To znamená, že vkládání se používá, kdykoli je to možné. (Vkládání přesune kód z externích rutin do volající rutiny.) Skutečnost, že .NET Native poskytuje specializovaný modul runtime a implementuje agresivní vkládání, ovlivňuje zásobník volání, který se zobrazí při ladění. Další informace najdete v oddílu Zásobník volání modulu runtime.
Poznámka:
Můžete ovládat, zda se sestavení pro ladění a vydání kompilují s nástrojovým řetězcem .NET Native, zaškrtnutím nebo zrušením zaškrtnutí políčka Zkompilovat s nástrojovým řetězcem .NET Native. Microsoft Store ale vždy zkompiluje produkční verzi aplikace pomocí řetězce nástrojů .NET Native.
Zprávy o výjimce modulu runtime
Aby se minimalizovala velikost spustitelného souboru aplikace, .NET Native neobsahuje úplný text zpráv o výjimce. V důsledku toho se výjimky modulu runtime vyvolané v buildech vydaných verzí nemusí zobrazovat úplný text zpráv o výjimce. Místo toho se text může skládat z podřetězce spolu s odkazem, který lze sledovat pro získání dalších informací. Například informace o výjimce se mohou zobrazit takto:
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.
Pokud potřebujete úplnou zprávu o výjimce, spusťte místo toho sestavení ladění. Například předchozí informace o výjimce z verze určené k vydání se mohou v sestavení ladění zobrazit takto:
Exception thrown: 'System.AggregateException' in NativeApp.exe.
Additional information: Value does not fall within the expected range.
Zásobník volání modulu runtime
Z důvodu vkládání a dalších optimalizací nemusí zásobník volání zobrazený aplikací zkompilovanou pomocí nástrojového řetězce .NET Native pomoct jasně identifikovat cestu k výjimce za běhu.
Pokud chcete získat kompletní zásobník, spusťte místo toho sestavení ladění.