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.
Bu makalede,
Çerçeve paketleri ve paket grafı
MSIX, modern bir paketleme ve dağıtım deneyimi sağlayan bir paket biçimidir. Ayrıca
Windows 8'den başlayarak ve Windows 10 ve Windows 11'den devam eden her işlemin çerçeve, kaynak, isteğe bağlı ve ana paketler dahil olmak üzere uygulama için kullanılabilir tüm paketlerin listesini sağlayan bir paket grafı vardır. Bu grafik, uygulamanın başvuruda bulunılan bir paket tarafından sağlanan DLL'leri, içeriği ve çalışma zamanı sınıf bildirimlerini yüklemesine olanak tanır. Geçmişte bu grafik işlem oluşturma zamanında düzeltildi ve çalışma zamanında değiştirmenin hiçbir yolu yoktu:
- Paketlenmiş uygulamalar için grafik, uygulamanın paket bildirimindeki PackageDependency öğesinde bildirilen paket bağımlılıklarına göre başlatıldı. Paketlenmiş bir uygulama oluştururken bu genellikle proje başvurularınıza ve bağımlılıklarınıza göre derleme işlemi sırasında sizin için yapılır.
- Paketlenmemiş uygulamalar için paket grafı boştu ve değiştirilemedi. Bu nedenle, paketlenmemiş uygulamalar standart DLL arama sırası ile sınırlıydı ve çerçeve paketlerine erişemedi.
Bu statik paket grafı kısıtlaması, hem Windows Uygulama SDK'sı hem de Windows 11'de dinamik bağımlılık desteğinin kullanıma sunulmasıyla kaldırılır. Geliştiriciler, çalışma zamanında uygulamalarından MSIX çerçeve paketlerine başvurmak ve bunları kullanmak için dinamik bağımlılıkları kullanabilir. Dinamik bağımlılıklar uygulamalardan statik paket grafı kısıtlamasını kaldırır ve geliştiriciler çerçeve paketlerinden nasıl yararlanmak istediklerine karar verebilir.
Dinamik bağımlılıklar için birincil senaryolar
Dinamik bağımlılıklar herhangi bir uygulamanın çalışma zamanında paket çerçevesi bağımlılığı eklemesine olanak tanır ancak bu özelliğin öncelikli olarak dış konum veya paketlenmemiş uygulamalarla paketlenmiş uygulamalar tarafından kullanılması amaçlanır. Paketlenmiş uygulamalar, paket bildirimindeki PackageDependency öğesi aracılığıyla statik bağımlılıklar eklemeye devam edebilir.
- Geliştiricilerin çoğu, uygulamanın Windows Uygulama SDK çalışma zamanı tarafından sağlanan API'leri çağırabilmesi için yalnızca harici bir konumda paketlenmiş veya paketlenmemiş bir uygulamada yer alan Windows Uygulama SDK çerçeve paketine başvurmak amacıyla dinamik bağımlılıkları kullanır. Bu senaryo hakkında daha fazla bilgi için bkz. Dış konumla paketlenmiş veya paketlenmemişuygulamalar için Windows Uygulama SDK'sı çalışma zamanını kullanma .
- Bazı durumlarda, geliştiriciler WinUI 2 için çerçeve paketi veya DirectX Çalışma Zamanı gibi paketlenmemiş bir uygulamadan farklı bir çerçeve paketine (Windows Uygulama SDK'sı çerçeve paketi dışında) başvurmak için dinamik bağımlılıkları kullanmak isteyebilir. Bu senaryo hakkında daha fazla bilgi için bkz. Çalışma zamanında MSIX paketlerine başvurmak için dinamik bağımlılık API'sini kullanma.
Çerçeve paketleri için bakım modeli
Dinamik bağımlılıklar özelliği, çalışma zamanında dinamik olarak başvuruda bulunup kullanılan çerçeve paketi için hizmet işlem hattının bütünlüğünü korur.
MSIX çerçeve paketleri, yan yana bir modelde hizmeti destekler; bu da her sürümün kendi ayrı sürüme sahip klasörüne yüklendiği anlamına gelir. Bu, daha yeni bir uygulama çerçeve paketinin daha yeni bir sürümünü yüklediğinde bile kullanımdaki uygulamaların çalışır durumda kalmasını sağlar. İşletim sistemi, belirli bir çerçeve paketinin eski sürümlerinin ne zaman silineceğiyle ilgili kaldırma mantığını, paket için yükleme zamanı başvuruları ve çalışma zamanı başvurularına göre belirler.
- Bir uygulama yüklendiğinde, bir çerçeve paketine
yükleme zamanı başvurusu oluşturabilir. Uygulamanızın belirtilen çerçeve paketine bağımlılığı olduğunu işletim sistemine bildiren bu referans, uygulamanız yüklüyken işletim sisteminin çerçeve paketini kaldırmamasını sağlar. - Bir uygulama, çerçeve paketindeki API'leri veya içeriği kullanması gerektiğinde, bu çerçeve paketine çalışma zamanı referansı ekleyebilir. Bu başvuru, işletim sistemine çerçeve paketinin etkin kullanımda olduğunu ve sürüm güncelleştirmelerini yan yana işlemeyi bildirir. Çerçeve paketinin yeni bir sürümü yüklüyse ancak çalışan bir uygulamanın kullanımda olan eski bir sürümü varsa, eski sürüme yönelik tüm çalışma zamanı başvuruları kaldırılana kadar işletim sistemi eski sürümü kaldıramaz.
Örneğin, bu senaryo göz önünde bulundurulduğunda:
- Uygulama A, belirli bir çerçeve paketinin 1.0.0.0 sürümünü çalıştırıyor ve kullanıyor.
- App B yüklenir ve aynı çerçeve paketinin 1.0.0.1 sürümüne bağımlıdır.
Bu senaryoda, çerçeve paketinin her iki sürümü de App A ve App Btarafından yüklenir ve kullanılır. Ancak Uygulama A kullanıcı tarafından kapatılıp yeniden başlatıldığında çerçeve paketinin daha yeni 1.0.0.1 sürümünü alır. Bu noktada, çalışma zamanı başvuru gereksinimi artık çerçeve paketinin 1.0.0.0 sürümü için geçerli değildir ve işletim sistemi 1.0.0.0 sürümünü güvenle kaldırabilir. Daha sonra Uygulama A ve App B kullanıcı tarafından kaldırıldığında, yükleme zamanı başvuru gereksinimi artık geçerli olmaz ve işletim sisteminin çerçeve paketini tamamen kaldırması güvenlidir.
Çerçeve paketlerine statik başvurular belirtmek üzere PackageDependency öğesini kullanan paketlenmiş uygulamalar için, uygulama yüklendiğinde veya kaldırıldığında çerçeve paketleri için yükleme zamanı başvuruları işletim sistemi tarafından izlenir. Dinamik bağımlılıklar özelliği kullanılarak yönetilen çalışma zamanı başvuruları için işletim sistemi paketlenmiş bir uygulamanın ne zaman çalıştığını bilir ve daha yeni bir uygulama kullanılabilir olduğunda kullanımda olan çerçeve paketlerini kaldırmaktan kaçınacaktır.
İlgili konular
- Harici konumla paketlenmiş veya paketlenmemiş uygulamalar için Windows Uygulama SDK'sı çalışma zamanını kullanma
- Çalışma zamanında MSIX paketlerine başvurmak için dinamik bağımlılık API'sini kullanın
- Çerçeveye bağımlı, dış konumla paketlenmiş veya paketlenmemiş uygulamalar için Windows Uygulama SDK'sı dağıtım kılavuzu
- Windows Uygulama SDK'sı için çalışma zamanı mimarisi
- Öğretici: Windows Uygulama SDK'sını kullanan ve dış konumla paketlenmiş veya paketlenmemiş bir uygulamada Önyükleyici API’yi kullanma
Windows developer