Aracılığıyla paylaş


Çerçeveye bağımlı paketlenmiş uygulamalar için Windows Uygulama SDK'sı dağıtım kılavuzu

Bu makalede, Windows Uygulama SDK'sını kullanan çerçeveye bağımlı paketlenmiş uygulamaları dağıtma (bkz. MSIX nedir?) dağıtma hakkında yönergeler sağlanır. Diğer çerçeveye bağımlı paketleme seçenekleri için eşdeğer konu, harici konumla paketlenmiş veya paketlenmemiş çerçeveye bağımlı uygulamalar için Windows Uygulama SDK dağıtım kılavuzu'dir.

Overview

Varsayılan olarak, Visual Studio 'dakiWinUI 3 şablonlarından birini kullanarak bir proje oluşturduğunuzda, projeniz tek projeli MSIX (bkz. Uygulamanızı tek projeli MSIXkullanarak paketleme) veya bir Windows Uygulama Paketleme projesi (bkz. Visual Studio'da MSIX paketlemesi için masaüstü uygulamanızı ayarlama) kullanarak bir MSIX paketinde derlemek üzere yapılandırılır. Ardından Visual Studio'da masaüstü veya UWP uygulaması paketleme yönergelerini kullanarak uygulamanız için bir MSIX paketi oluşturabilirsiniz. Uygulamanız için bir MSIX paketi derledikten sonra, MSIX dağıtımınızı yönetmeiçin çeşitli seçenekleriniz vardır.

Paketlenmiş uygulamanızın Windows Uygulama SDK'sını kullanırken ihtiyaç duyabileceği paketler hakkında daha fazla bilgi edinmek için bkz. Windows Uygulama SDK'sı için dağıtım mimarisi. Bunlar Framework, Main ve Singleton paketlerini içerir; microsoft tarafından imzalanmış ve yayımlanmıştır. Paketlenmiş bir uygulamayı dağıtmak için iki ana gereksinim vardır:

  1. Windows Uygulama SDK'sı çerçeve paketinidağıtın.
  2. Dağıtım API'siniçağırın.

Prerequisites

  • Paketlenmiş uygulamalar için VCLibs çerçevesi paket bağımlılığı bir gereksinimdir. Daha fazla bilgi için bkz. Desktop Bridgeiçin C++ Çalışma Zamanı çerçeve paketleri.
  • C#. .NET 6 veya üzeri gereklidir. Daha fazla bilgi için bkz. .NET İndirmeleri.

Windows Uygulama SDK'sı çerçeve paketini dağıtma

Windows Uygulama SDK'sı çerçeve paketi, çalışma zamanında kullanılan Windows Uygulama SDK ikili dosyalarını içerir ve uygulamanızla birlikte yüklenir. Çerçeve, Windows Uygulama SDK'sının farklı kanalları için farklı dağıtım gereksinimlerine sahiptir.

Kararlı sürüm

Geliştirme bilgisayarınıza Windows Uygulama SDK'sı NuGet paketinin kararlı bir sürüm sürümünü yüklediğinizde ve sağlanan WinUI 3 proje şablonlarından birini kullanarak bir proje oluşturduğunuzda, oluşturulan paket bildirimi çerçeve paketine bağımlılığı belirten bir PackageDependency öğesi içerir.

Ancak, uygulama paketinizi ayrı bir Windows Uygulaması Paketleme Projesi kullanarak el ile derlerseniz, dosyanızda aşağıdaki gibi bir PackageReference bildirmeniz Application (package).wapproj gerekir:

<ItemGroup>
   <PackageReference Include="Microsoft.WindowsAppSDK" Version="1.0.1">
       <IncludeAssets>build</IncludeAssets>
   </PackageReference>
</ItemGroup>

Bu paket bağımlılığı, uygulamanız başka bir bilgisayara dağıtıldığında Framework paketinin yüklenmesini sağlar.

Önizleme sürümü

Geliştirme bilgisayarınıza Windows Uygulama SDK'sı NuGet paketinin önizleme sürümü yüklediğinizde, derleme zamanında NuGet paketi bağımlılığı olarak Windows Uygulama SDK'sı çerçeve paketinin önizleme sürümü dağıtılır.

Dağıtım API'sini çağırma

Ayrıca bkz. Windows Uygulama SDK'ını Başlatın.

Dağıtım API'si Windows Uygulama SDK'sı çerçeve paketi tarafından sağlanır ve Microsoft.Windows.ApplicationModel.WindowsAppRuntime ad alanında kullanılabilir. Windows uygulama modeli, Main ve Singleton paketlerine bağımlılık bildirmeyi desteklemez. Bu nedenle Dağıtım API'sinin şu nedenlerle gerekli olması gerekir:

  1. Çerçeve paketinde bulunmayan özellikler (örneğin, anında iletme bildirimleri) için Singleton paketini dağıtmak için.
  2. Microsoft Store'dan Framework paketine otomatik güncelleştirmeler sağlayan Main paketini dağıtmak için.

Mağaza aracılığıyla dağıtılmayan paketlenmiş uygulamalar için, Framework paketini dağıtmak geliştirici olarak sizin sorumluluğundadır. Kritik hizmet güncelleştirmelerinin teslimi için Dağıtım API'sini çağırmanızı öneririz. Çerçeve paketi dışındaki özellikleri (örneğin, anında iletme bildirimleri) kullanmak için Singleton paketinin dağıtılması gerektiğini unutmayın (bu, Dağıtım API'siyle veya MSIX paketlerini kendi yükleme yönteminizle yeniden dağıtarak yapılabilir).

Important

Windows Uygulama SDK'sı sürüm 1.0'da yalnızca tam güven olan veya packageManagement kısıtlanmış özelliğine sahip paketlenmiş uygulamalar, Main ve Singleton paket bağımlılıklarını yüklemek için Dağıtım API'sini kullanma iznine sahiptir. Kısmi güven paketli uygulamalar için destek sonraki sürümlerde sunulacaktır.

Uygulamanızın işlemi başlatıldıktan sonra, ancak uygulamanız Singleton paketini kullanan Windows Uygulama SDK çalışma zamanı özelliklerini (örneğin anında iletme bildirimleri) kullanmadan önce Dağıtım API'sini çağırmalısınız. Dağıtım API'sinin ana yöntemleri, DeploymentManager sınıfının statik GetStatus ve Initialize yöntemleridir.

  • GetStatus yöntemi, şu anda yüklü olan Windows Uygulama SDK'sı çalışma zamanının geçerli dağıtım durumunu döndürür. Geçerli uygulama Windows Uygulama SDK'sı özelliklerini kullanabilmeden önce Windows Uygulama SDK'sı çalışma zamanı paketlerini yüklemek için gereken çalışma olup olmadığını belirlemek için bu yöntemi kullanın.
  • Initialize yöntemi, tüm gerekli paketlerin şu anda yüklü olan Windows Uygulama SDK'sı çalışma zamanı için gereken en düşük sürümde bulunup bulunmadığını doğrular. Herhangi bir paket bağımlılığı eksikse, yöntemi bu eksik paketleri kaydetmeyi dener. Windows Uygulama SDK'sı 1.1 sürümünden itibaren Initialize yöntemi, Windows Uygulama SDK'sı çalışma zamanı paketlerini zorla dağıtma seçeneğini de destekler. Bu, Main ve Singleton çalışma zamanı paketleri için tüm işlemleri kapatır ve böylece hizmetlerini kesintiye uğratır (örneğin, anında iletme bildirimleri bu süre boyunca bildirim sunmaz). Initialize'ı yalnızca bir kez çağırmalısınız. Visual Studio'da Hata Ayıklama olmadan Başlat ve Hata Ayıklamayı Başlat komutları aracılığıyla dağıtılan uygulamalar için Initialize çağrısı yapmanız gerekmez.

Important

Visual Studio özelliğinin <WindowsAppSdkDeploymentManagerInitialize> varsayılan değeridir true. Bu nedenle DeploymentManager.Initialize öğesini açıkça çağırmak istiyorsanız Visual Studio proje dosyanızda ayarlayın <WindowsAppSdkDeploymentManagerInitialize>false</WindowsAppSdkDeploymentManagerInitialize> .

Dağıtım API'si örnek uygulaması

DeploymentManager sınıfının GetStatus ve Initialize yöntemlerini kullanma hakkında ek yönergeler için kullanılabilir örnek uygulamayı keşfedin.

Yükleme hatalarını giderme

Dağıtım API'si Windows Uygulama SDK'sı çalışma zamanı paketlerinin yüklenmesi sırasında bir hatayla karşılaşırsa, sorunu açıklayan bir hata kodu döndürür.

Örneğin, uygulamanız tam güven içermiyorsa veya packageManagement kısıtlanmış özelliğine sahip değilse ACCESS_DENIED bir hata kodu alırsınız. Karşılaşabileceğiniz diğer hata kodlarını ve bunların olası nedenlerini gözden geçirmek için bkz. Windows uygulamalarını paketleme, dağıtım ve sorgulama sorunlarını giderme.

Hata kodu yeterli bilgi sağlamıyorsa ayrıntılı olay günlüklerinde daha fazla tanılama bilgisi bulabilirsiniz (bkz. Tanılama bilgilerini alma ).

Tanılayamadığınız hatalarla karşılaşırsanız, hata kodunu ve olay günlüklerini ekleyerek WindowsAppSDK GitHub deposunda bir sorun oluşturun ki sorunu araştırabilelim.