Sürüm uyarlamalı uygulamalar

Windows SDK'sının her sürümü, yararlanmak isteyebileceğiniz yeni işlevler ekler. Ancak, tüm müşterileriniz cihazlarını aynı anda en son Windows sürümüne güncelleştirmez. Uygulamanızın mümkün olan en geniş cihaz yelpazesinde çalışmasını ve kullanılabilir olduğunda yeni özelliklerden yararlanmasını istiyorsunuz.

Prerequisites

  • Windows Uygulama SDK'sı 1.0 veya üzeri
  • Windows uygulama geliştirme iş yüküne sahip Visual Studio 2022 veya üzeri

Genel bakış

En geniş Windows cihazı yelpazesini desteklemek için şu üç adımı izleyin:

  1. en son API'leri hedeflemek için Visual Studio projenizi yapılandırın. Bu, derleme zamanında derleyicinin neye erişimi olduğunu etkiler.
  2. Yalnızca uygulamanızın çalıştığı cihazda bulunan API'leri çağırmak için çalışma zamanı denetimleri gerçekleştirin.
  3. Uygulamanızı en düşük sürümde ve Windows hedef sürümünde test edin.

Visual Studio projenizi yapılandırma

Birden çok Windows sürümünü desteklemenin ilk adımı, Visual Studio projenizde Hedef ve Minimum desteklenen işletim sistemi/SDK sürümlerini belirtmektir.

  • Hedef — Visual Studio’nun uygulama kodunuzu derlediği SDK sürümü. Bu SDK sürümündeki tüm API'ler ve kaynaklar derleme zamanında uygulama kodunuzda kullanılabilir.
  • En düşük : Uygulamanızın çalıştırabileceği en eski işletim sistemi sürümünü destekleyen SDK sürümü.

Çalışma zamanı sırasında uygulamanız dağıtılan işletim sistemi sürümüne göre çalışır. Uygulamanız, o sürümde kullanılamayan API'leri kullanırsanız istisna fırlatır. Bu makalenin ilerleyen bölümlerinde açıklandığı gibi doğru API'leri çağırmak için çalışma zamanı denetimlerini kullanın.

Tavsiye

Visual Studio API uyumluluğu konusunda sizi uyarmaz. Uygulamanızın Minimum ve Hedef dahil olmak üzere tüm işletim sistemi sürümlerinde doğru şekilde çalıştığını test etmek ve doğrulamak sizin sorumluluğunuzdadır.

Visual Studio'de yeni bir proje oluşturduğunuzda uygulamanızın desteklediği Hedef ve En Düşük sürümleri ayarlayın. Varsayılan olarak, Hedef Sürüm en yüksek yüklü SDK sürümüdür ve En Düşük Sürüm en düşük yüklü SDK'dır.

Mevcut bir project için En Düşük ve Hedef sürümünü değiştirmek için Project>Özellikler>Uygulama>Hedefleme'ye gidin.

API denetimleri gerçekleştirme

Sürüm uyarlamalı uygulamaların anahtarı API sözleşmeleri ile ApiInformation sınıfının birleşimidir. Bu sınıf, çeşitli cihazlarda ve işletim sistemi sürümlerinde API çağrılarını güvenli bir şekilde yapabilmeniz için belirtilen BIR API sözleşmesinin, türünün veya üyesinin mevcut olup olmadığını algılamanıza olanak tanır.

API sözleşmeleri

Bir cihaz ailesi içindeki API kümesi, API sözleşmeleri olarak bilinen alt bölümlere ayrılır. Bir API sözleşmesinin var olup olmadığını denetlemek için ApiInformation.IsApiContractPresent yöntemini kullanın. Bu, bir API sözleşmesinin aynı sürümünde bulunan birçok API'yi test etmek istediğinizde kullanışlıdır.

bool isScannerContractPresent =
    Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent(
        "Windows.Devices.Scanners.ScannerDeviceContract", 1);

API sözleşmesi, belirli bir özelliği birlikte sunan ilgili API'ler kümesi olan bir özelliği temsil eder. BIR API sözleşmesindeki herhangi bir API'yi uygulayan bir platformun bu sözleşmedeki her API'yi uygulaması gerekir. Sözleşmeyi bir kez test edin ve ardından API'lerinden herhangi birini güvenli bir şekilde çağırın.

En büyük ve en yaygın kullanılan sözleşme, Windows Çalışma Zamanı API'lerinin çoğunluğunu içeren sözleşmesidirWindows.Foundation.UniversalApiContract. Kullanılabilir sözleşmelerin listesi için bkz . Cihaz ailesi uzantısı SDK'ları ve API sözleşmeleri.

Sürüm uyarlamalı kod ve koşullu XAML

Kodunuzdaki bir koşulda, çağırmadan önce bir API'nin mevcut olup olmadığını test etmek için ApiInformation sınıfını kullanın. IsTypePresent, IsEventPresent, IsMethodPresent ve IsPropertyPresent gibi yöntemler, ihtiyacınız olan ayrıntı düzeyinde test yapmanıza olanak tanır.

Daha fazla bilgi ve örnek için bkz . Sürüm uyarlamalı kodu.

Uygulamanızın Minimum Sürümü derleme 17763 (sürüm 1809) veya üzeriyse, özellikleri ayarlamak ve işaretleme içinde nesne örnekleri oluşturmak için, arkadaki koda gerek duymadan koşullu XAML kullanabilirsiniz. Koşullu XAML, ApiInformation.IsApiContractPresent öğesini işaretleme içinde doğrudan kullanmanın bir yolunu sunar.

Daha fazla bilgi ve örnek için bkz . Koşullu XAML.

Sürüm uyarlamalı uygulamanızı test edin

Sürüm uyarlamalı kodu veya koşullu XAML'yi kullandığınızda uygulamanızı En Düşük Sürüm çalıştıran bir cihazda ve Windows Hedef Sürümünü çalıştıran bir cihazda test edin.

Tüm koşullu kod yollarını tek bir cihazda test edemezsiniz. Tüm kod yollarının düzgün çalıştığından emin olmak için uygulamanızı desteklenen en düşük işletim sistemi sürümünü çalıştıran bir uzak cihazda (veya sanal makinede) dağıtın ve test edin.