Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Każda wersja zestawu SDK Windows dodaje nowe funkcje, które warto wykorzystać. Jednak nie wszyscy klienci aktualizują swoje urządzenia do najnowszej wersji Windows jednocześnie. Chcesz, aby aplikacja działała na najszerszym możliwym zakresie urządzeń, jednocześnie korzystając z nowych funkcji, gdy są dostępne.
Wykonaj następujące trzy kroki, aby obsługiwać najszerszy zakres urządzeń Windows:
- Skonfiguruj projekt Visual Studio, aby był przeznaczony dla najnowszych interfejsów API. Ma to wpływ na to, do czego kompilator ma dostęp w czasie kompilacji.
- Przeprowadzaj sprawdzenia w czasie wykonywania, aby mieć pewność, że wywołujesz tylko te interfejsy API, które są dostępne na urządzeniu, na którym działa aplikacja.
- Przetestuj aplikację w minimalnej wersji i wersji docelowej Windows.
Konfigurowanie projektu Visual Studio
Pierwszym krokiem obsługi wielu wersji Windows jest określenie wersji docelowej i minimalnej obsługiwanej wersji systemu operacyjnego/zestawu SDK w projekcie Visual Studio.
- Target — wersja zestawu SDK, względem której program Visual Studio kompiluje kod aplikacji. Wszystkie interfejsy API i zasoby w tej wersji zestawu SDK są dostępne w kodzie aplikacji w czasie kompilacji.
- Minimalna — wersja zestawu SDK, która obsługuje najwcześniejszą wersję systemu operacyjnego, na którą można uruchomić aplikację.
Podczas działania aplikacja działa w systemie operacyjnym w wersji, na której została wdrożona. Aplikacja zgłasza wyjątki, jeśli używasz interfejsów API, które nie są dostępne w tej wersji. Użyj kontroli środowiska uruchomieniowego, aby wywołać poprawne interfejsy API zgodnie z opisem w dalszej części tego artykułu.
Wskazówka
Visual Studio nie ostrzega o zgodności interfejsu API. Twoim obowiązkiem jest przetestowanie i zweryfikowanie, czy Twoja aplikacja działa poprawnie we wszystkich wersjach systemu operacyjnego od wersji Minimum do wersji Target, włącznie.
Podczas tworzenia nowego projektu w programie Visual Studio ustaw wersję docelową i minimalną wersję obsługiwaną przez aplikację. Domyślnie wersja docelowa to najwyższa zainstalowana wersja zestawu SDK, a minimalna wersja to najniższy zainstalowany zestaw SDK.
Aby zmienić wersję minimalną i docelową dla istniejącego projektu, przejdź do Project>Właściwości>Aplikacja>Targeting.
Przeprowadzanie kontroli interfejsu API
Kluczem do działania aplikacji dostosowujących się do wersji jest kombinacja kontraktów API i klasy ApiInformation. Ta klasa umożliwia wykrywanie, czy określony kontrakt interfejsu API, typ lub element członkowski jest obecny, dzięki czemu można bezpiecznie wykonywać wywołania interfejsu API w różnych urządzeniach i wersjach systemu operacyjnego.
Umowy API
Zestaw interfejsów API w rodzinie urządzeń jest podzielony na podpodziały znane jako kontrakty interfejsu API. Użyj metody ApiInformation.IsApiContractPresent, aby sprawdzić obecność kontraktu API. Jest to przydatne, gdy chcesz przetestować wiele interfejsów API, które istnieją w tej samej wersji kontraktu interfejsu API.
bool isScannerContractPresent =
Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent(
"Windows.Devices.Scanners.ScannerDeviceContract", 1);
Kontrakt interfejsu API reprezentuje funkcję — zestaw powiązanych interfejsów API, które razem zapewniają określoną możliwość. Platforma, która implementuje dowolny interfejs API w kontrakcie interfejsu API, musi implementować każdy interfejs API w tym kontrakcie. Przetestuj kontrakt raz, a następnie bezpiecznie wywołaj dowolny z jego interfejsów API.
Największy i najczęściej używany kontrakt to Windows.Foundation.UniversalApiContract, który zawiera większość interfejsów API środowisko wykonawcze systemu Windows. Aby uzyskać listę dostępnych kontraktów, zobacz Zestawy SDK rozszerzeń rodzin urządzeń i kontrakty API.
Kod adaptacyjny wersji i warunkowy kod XAML
ApiInformation Użyj klasy w warunku w kodzie, aby przetestować obecność interfejsu API przed wywołaniem go. Metody takie jak IsTypePresent, , IsEventPresentIsMethodPresenti IsPropertyPresent umożliwiają testowanie na potrzebnym poziomie szczegółowości.
Aby uzyskać więcej informacji i przykładów, zobacz Kod adaptacyjny wersji.
Jeśli minimalna wersja aplikacji to kompilacja 17763 (wersja 1809) lub nowsza, możesz użyć warunkowego języka XAML, aby ustawiać właściwości i tworzyć wystąpienia obiektów w znacznikach bez użycia kodu zaplecza. Warunkowy język XAML umożliwia korzystanie z ApiInformation.IsApiContractPresent bezpośrednio w znacznikach.
Aby uzyskać więcej informacji i przykładów, zobacz Warunkowy kod XAML.
Testowanie aplikacji adaptacyjnej wersji
Jeśli używasz kodu adaptacyjnego wersji lub warunkowego kodu XAML, przetestuj aplikację na urządzeniu z uruchomioną minimalną wersją i na urządzeniu z uruchomioną wersją docelową Windows.
Nie można przetestować wszystkich ścieżek kodu warunkowego na jednym urządzeniu. Wdróż i przetestuj aplikację na urządzeniu zdalnym (lub maszynie wirtualnej) z minimalną obsługiwaną wersją systemu operacyjnego, aby upewnić się, że wszystkie ścieżki kodu działają poprawnie.