Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ważne jest, aby przetestować kompilacje wersji aplikacji na platformę uniwersalną systemu Windows na docelowych platformach, ponieważ konfiguracje debugowania i wersji są zupełnie inne. Domyślnie konfiguracja debugowania używa środowiska uruchomieniowego platformy .NET Core do kompilowania aplikacji, ale konfiguracja wydania używa platformy .NET Native do kompilowania aplikacji do kodu natywnego.
Ważne
Aby uzyskać informacje na temat obsługi MissingMetadataException, MissingInteropDataExceptioni MissingRuntimeArtifactException wyjątków, które mogą wystąpić podczas testowania wersji aplikacji, Zobacz "Krok 4. Ręczne rozwiązywanie brakujących metadanych: w temacie wprowadzenie do , a także odbicie i .NET Native oraz dyrektywy środowiska uruchomieniowego (rd.xml) dokumentacja pliku konfiguracji.
Kompilacje debugowania i wydawania
Gdy kompilacja debugowania jest wykonywana względem środowiska uruchomieniowego platformy .NET Core, nie została skompilowana do kodu natywnego. To sprawia, że wszystkie usługi, które są zazwyczaj dostarczane przez środowisko uruchomieniowe, stają się dostępne dla Twojej aplikacji.
Z drugiej strony build wersji kompiluje kod natywny dla platform docelowych, usuwa większość zależności od zewnętrznych środowisk uruchomieniowych i bibliotek oraz intensywnie optymalizuje kod pod kątem maksymalnej wydajności.
Podczas debugowania wersji wydaniowych skompilowanych przy użyciu platformy .NET Native:
Używasz silnika debugowania .NET Native, który różni się od normalnych narzędzi debugowania platformy .NET.
Rozmiar pliku wykonywalnego jest jak najwięcej zmniejszany. Jednym ze sposobów, w jaki program .NET Native zmniejsza rozmiar pliku wykonywalnego, jest znacznie przycinanie komunikatów wyjątków środowiska uruchomieniowego— temat omówiony bardziej szczegółowo w sekcji Komunikaty o wyjątkach środowiska uruchomieniowego .
Kod jest mocno zoptymalizowany. Oznacza to, że podkreślenie jest używane zawsze, gdy jest to możliwe. (Inlining przenosi kod z procedur zewnętrznych do procedury wywołującej). Fakt, że platforma .NET Native udostępnia wyspecjalizowane środowisko uruchomieniowe i implementuje agresywne inlining, wpływa na stos wywołań wyświetlany podczas debugowania. Aby uzyskać więcej informacji, zobacz sekcję Stos wywołań środowiska uruchomieniowego .
Uwaga / Notatka
Możesz kontrolować, czy kompilacje debug i release są kompilowane za pomocą łańcucha narzędzi .NET Native, zaznaczając lub usuwając zaznaczenie pola Compile with .NET Native tool chain. Jednak sklep Microsoft Store zawsze kompiluje wersję produkcyjną aplikacji za pomocą łańcucha narzędzi .NET Native.
Komunikaty o wyjątkach środowiska uruchomieniowego
Aby zminimalizować rozmiar pliku wykonywalnego aplikacji, platforma .NET Native nie zawiera pełnego tekstu komunikatów o wyjątkach. W związku z tym wyjątki środowiska uruchomieniowego zgłoszone w kompilacjach produkcyjnych mogą nie wyświetlać pełnej treści komunikatów wyjątków. Zamiast tego tekst może składać się z ciągu wraz z linkiem prowadzącym do uzyskania dalszych informacji. Na przykład informacje o wyjątku mogą być wyświetlane jako:
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.
Jeśli potrzebujesz pełnego komunikatu o wyjątku, uruchom zamiast tego kompilację debugowania. Na przykład poprzednie informacje o wyjątku z kompilacji wydania mogą być wyświetlane w następujący sposób w kompilacji debugowania:
Exception thrown: 'System.AggregateException' in NativeApp.exe.
Additional information: Value does not fall within the expected range.
Stos wywołań środowiska uruchomieniowego
Ze względu na inlining i inne optymalizacje stos wywołań wyświetlany przez aplikację skompilowany przez łańcuch narzędzi .NET Native może nie pomóc w wyraźnej identyfikacji ścieżki do wyjątku środowiska uruchomieniowego.
Aby uzyskać pełny stos, uruchom zamiast tego kompilację debugowania.