Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Windows 10 SDK'sının her sürümü, yararlanmak isteyeceğiniz heyecan verici yeni işlevler ekler. Ancak, tüm müşterileriniz cihazlarını aynı anda en son Windows 10 sürümüne güncelleştirmez ve uygulamanızın mümkün olan en geniş cihaz aralığında çalıştığından emin olmak istersiniz. Burada, uygulamanızın Windows 10 önceki sürümlerinde çalışacak şekilde nasıl tasarlandığını gösteririz, ancak uygulamanız en son güncelleştirmenin yüklü olduğu bir cihazda çalıştığında yeni özelliklerden de yararlanır.
Uygulamanızın en geniş Windows 10 cihaz yelpazesini desteklediğinden emin olmak için atılması gereken 3 adım vardır.
- İlk olarak, en son API'leri hedeflemek için Visual Studio projenizi yapılandırın. Bu, uygulamanızı derlediğinizde ne olacağını etkiler.
- İkinci olarak, yalnızca uygulamanızın üzerinde çalıştığı cihazda bulunan API'leri çağırdığınızdan emin olmak için çalışma zamanı denetimleri gerçekleştirin.
- Üçüncüsü, uygulamanızı En Düşük Sürüm'de ve Windows 10 Hedef Sürümünde test edin.
Visual Studio projenizi yapılandırma
Birden çok Windows 10 sürümünü desteklemenin ilk adımı, Visual Studio projenizde desteklenen Target ve Minimum desteklenen işletim sistemi/SDK sürümlerini belirtmektir.
- Target: Visual Studio SDK sürümü, uygulama kodunuzu derler ve tüm araçları çalıştırır. Bu SDK sürümündeki tüm API'ler ve kaynaklar derleme zamanında uygulama kodunuzda kullanılabilir.
- Minimum: Uygulamanızın üzerinde çalıştırabileceği (ve mağaza tarafından dağıtılacak) en eski işletim sistemi sürümünü destekleyen SDK sürümü ve Visual Studio uygulama işaretleme kodunuzu derleyen sürüm.
Çalışma zamanı sırasında uygulamanız dağıtılan işletim sistemi sürümüne göre çalıştırılır, bu nedenle kaynakları kullanırsanız veya bu sürümde bulunmayan API'leri çağırırsanız uygulamanız özel durumlar oluşturur. Bu makalenin devamında doğru API'leri çağırmak için çalışma zamanı denetimlerinin nasıl kullanılacağını göstereceğiz.
Hedef ve En Düşük ayarları, işletim sistemi/SDK sürümleri aralığının uçlarını belirtir. Ancak uygulamanızı en düşük sürümde test ederseniz, En Düşük ve Hedef arasındaki tüm sürümlerde çalıştırılacağından emin olabilirsiniz.
İpucu
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 beklendiği gibi çalıştığından emin olmak sizin sorumluluğunuzdadır.
Visual Studio 2015, Güncelleştirme 2 veya sonraki sürümlerinde yeni bir proje oluşturduğunuzda, uygulamanızın desteklediği Hedef ve En Düşük sürümlerini ayarlamanız istenir. 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 sürümüdür. Yalnızca makinenize yüklenen SDK sürümlerinden Hedef ve En Düşük'ü seçebilirsiniz.
Genellikle varsayılan değerleri bırakmanızı öneririz. Ancak, SDK'nın Önizleme sürümü yüklüyse ve üretim kodu yazıyorsanız, Hedef Sürümü Önizleme SDK'sından en son resmi SDK sürümüne değiştirmeniz gerekir.
Visual Studio önceden oluşturulmuş bir projenin En Düşük ve Hedef sürümünü değiştirmek için Project -> Properties -> Uygulama sekmesi -> Hedefleme'ye gidin.
Referans için, aşağıdaki tabloda her bir SDK'nın derleme numaraları gösterilmektedir.
| Dostça isim | Sürüm | İşletim sistemi/SDK derlemesi |
|---|---|---|
| RTM | 1507 | 10240 |
| Kasım Güncelleştirmesi | 1511 | 10586 |
| Yıldönümü Güncelleştirmesi | 1607 | 14393 |
| Oluşturucular Güncellemesi | 1703 | 15063 |
| Fall Creators Update | 1709 | 16299 |
| Nisan 2018 Güncelleştirmesi | 1803 | 17134 |
| Ekim 2018 Güncelleştirmesi | 1809 | 17763 |
| Mayıs 2019 Güncelleştirmesi | 1903 | 18362 |
Yayımlanan herhangi bir SDK sürümünü Windows SDK ve öykünücü arşivinden indirebilirsiniz. Windows Insider sitesinin geliştirici bölümünden en son Windows Insider Preview SDK'sını indirebilirsiniz.
Windows 10 güncelleştirmeleri hakkında daha fazla bilgi için bkz. Windows 10 sürüm bilgileri. Windows 10 destek yaşam döngüsü hakkında önemli bilgiler için Windows yaşam döngüsü bilgi sayfasına bakın.
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. ApiInformation.IsApiContractPresent yöntemini kullanarak BIR API sözleşmesi olup olmadığını test edebilirsiniz. Bir API sözleşmesinin aynı sürümünde bulunan birçok API'nin varlığını test etmek istiyorsanız bu yararlı olur.
bool isScannerDeviceContract_1_Present =
Windows.Foundation.Metadata.ApiInformation.IsApiContractPresent
("Windows.Devices.Scanners.ScannerDeviceContract", 1);
API sözleşmesi nedir? Temel olarak, API sözleşmesi bir özelliği temsil eder: belirli işlevleri birlikte sunan ilgili API'lerden oluşan bir kümedir. Varsayımsal bir API sözleşmesi, iki sınıf, beş arabirim, bir yapı, iki sabit listesi vb. içeren bir API kümesini temsil edebilir.
Mantıksal olarak ilişkili türler bir API sözleşmesi içinde gruplandırılır ve Windows 10 başlayarak her Windows Runtime API bir API sözleşmesinin üyesidir. API Sözleşmeleri ile cihazdaki belirli bir özelliğin veya API'nin kullanılabilirliğini denetler, belirli bir cihazı veya işletim sistemini denetlemek yerine cihazın özelliklerini etkili bir şekilde denetlersiniz. Bir API sözleşmesindeki herhangi bir API'yi uygulayan bir platform, söz konusu API sözleşmesindeki her API'yi uygulamak için gereklidir. Başka bir deyişle, çalışan işletim sisteminin belirli bir API sözleşmesini destekleyip desteklemediğini test edebilir ve destekliyorsa her birini ayrı ayrı denetlemeden bu API sözleşmesindeki API'lerden herhangi birini çağırabilirsiniz.
En büyük ve en yaygın kullanılan API sözleşmesi, Windows sözleşmesidir. Foundation.UniversalApiContract. Universal Windows Platform API'lerin çoğunu içerir. Cihaz ailesi uzantısı SDK'ları ve API sözleşmeleri belgelerinde kullanılabilir API sözleşmelerinin çeşitliliği açıklanmaktadır. Bunların çoğunun işlevsel olarak ilişkili api'ler kümesini temsil ettiğini göreceksiniz.
Uyarı
Henüz belgelenmemiş bir önizleme Windows Yazılım Geliştirme Seti (SDK) yüklüyse, API sözleşmesi desteğiyle ilgili bilgileri '(Program Files (x86))\Windows Kits\10\Platforms<platform><SDK version>\Platform.xml' konumundaki SDK yükleme klasöründe bulunan 'Platform.xml' dosyasında da bulabilirsiniz.
Sürüm uyarlamalı kod ve koşullu XAML
Windows 10'nin tüm sürümlerinde, çağırmak istediğiniz API'nin varlığını test etmek için apiInformation sınıfını kodunuzdaki bir koşulda kullanabilirsiniz. Uyarlamalı kodunuzda, ihtiyacınız olan ayrıntı düzeyinde API'leri test etmek için sınıfının IsTypePresent, IsEventPresent, IsMethodPresent ve IsPropertyPresent gibi çeşitli yöntemlerini kullanabilirsiniz.
Daha fazla bilgi ve örnek için bkz . Sürüm uyarlamalı kodu.
Uygulamalarınızın Minimum Sürümü derleme 15063 (Creators Update) veya sonrası ise, koşullu XAML kullanarak XAML içinde özellikleri ayarlayabilir ve arka plan kodu kullanmaya gerek kalmadan nesnelerin örneğini oluşturabilirsiniz. Koşullu XAML, işaretlemede ApiInformation.IsApiContractPresent yöntemini kullanmak için bir yol sağlar.
Daha fazla bilgi ve örnek için bkz . Koşullu XAML.
Gecikmeli yüklenen API'ler
QueryOptionalDelayLoadedAPI işlevi, Store uygulamalarının (ilke tarafından LoadLibrary'yi çağırmasına izin verilmez) gecikmeli yüklenen işlevlerinin gerçekten bulunup bulunmadığını algılamasını sağlar.
#include <windows.h>
#include <commdlg.h>
#include <libloaderapi2.h>
#include <stdio.h>
EXTERN_C IMAGE_DOS_HEADER __ImageBase;
#define HMODULE_THISCOMPONENT reinterpret_cast<HMODULE>(&__ImageBase)
int __cdecl main(int argc, char** argv)
{
if (QueryOptionalDelayLoadedAPI(HMODULE_THISCOMPONENT,
"comdlg32.dll", "GetOpenFileNameW", 0))
{
printf("GetOpenFileNameW can be called!\n");
}
return 0;
}
Sürüm uyarlamalı uygulamanızı test edin
Sürüm uyarlamalı bir uygulama yazmak için sürüm uyarlamalı kodu veya koşullu XAML'yi kullandığınızda, bunu En Düşük Sürüm çalıştıran bir cihazda ve Windows 10 Hedef Sürümünü çalıştıran bir cihazda test etmeniz gerekir.
Tüm koşullu kod yollarını tek bir cihazda test edemezsiniz. Tüm kod yollarının test edilmesini sağlamak 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ğıtmanız ve test etmeniz gerekir. Uzaktan hata ayıklama hakkında daha fazla bilgi için bkz. UWP uygulamalarını dağıtma ve hata ayıklama.