Windows Uygulama SDK'sı dağıtımına genel bakış

Windows Uygulama SDK'sı dağıtmanın iki yolu vardır:

  • Framework'e bağımlı. Uygulamanız, hedef makinede mevcut olan Windows Uygulama SDK'sı çalışma zamanına ve/veya Framework paketine bağlıdır. Çerçeveye bağımlı dağıtım, makine kaynaklarının verimli kullanımı ve hizmet verilebilirliği için Windows Uygulama SDK'sı varsayılan dağıtım modudur.
  • Bağımsız. Uygulamanız Windows Uygulama SDK'sı bağımlılıklarını taşır ve hedef makinede ayrı bir çalışma zamanı yüklemesi gereksinimini ortadan kaldırır.

Bu konu başlığında, paketlenmiş uygulama, dış konum ile paketlenmiş uygulamave paketlenmemiş uygulama terimleri de kullanılır. Bu terimlerin açıklamaları için bkz. Dağıtım genel bakışı.

Çerçeveye bağımlı dağıtım Bağımsız dağıtım
Avantajları Küçük dağıtım. Yalnızca uygulamanız ve diğer bağımlılıkları dağıtılır. Windows Uygulama SDK'sı çalışma zamanı ve Çerçeve paketi, paketlenmiş çerçeve bağımlı uygulamalar tarafından veya dış konumla paketlenmiş veya paketlenmemiş çerçeveye bağımlı uygulamalar tarafından Windows Uygulama SDK'sı çalışma zamanı yükleyicisinin bir parçası olarak otomatik olarak yüklenir.

Kullanılabilir. Windows Uygulama SDK'sı hizmet güncelleştirmeleri, uygulamanın herhangi bir eylemi gerekmeden Windows Uygulama SDK'sı Framework paketi aracılığıyla otomatik olarak yüklenir.
Control Windows Uygulama SDK'sı sürümü. Uygulamanızla Windows Uygulama SDK'sı hangi sürümünün dağıtılacağı sizin denetiminizdedir. Windows Uygulama SDK'sı hizmet güncelleştirmeleri, uygulamanızı yeniden oluşturup yeniden dağıtmadığınız sürece etkilemez.

diğer uygulamalardan yalıtılmış. Uygulamalar ve kullanıcılar, uygulamanızın tamamını kaldırmadan Windows Uygulama SDK'sı bağımlılığınızı kaldıramaz.

Xcopy dağıtım. Windows Uygulama SDK'sı bağımlılıkları uygulamanız tarafından taşındığından, ek bir yükleme gereksinimi olmaksızın derleme çıktınızı 'xcopy' komutuyla kopyalayarak uygulamanızı dağıtabilirsiniz.
Dezavantajları ek yükleme bağımlılıkları. Uygulama yüklemesine karmaşıklık katabilen Windows Uygulama SDK'sı çalışma zamanının ve/veya Framework paketinin yüklenmesini gerektirir.

Paylaşılan bağımlılıklar. Paylaşılan bağımlılıkların kaldırılması riski. Paylaşılan bileşenleri kaldıran uygulamalar veya kullanıcılar, bağımlılığı paylaşan diğer uygulamaların kullanıcı deneyimini etkileyebilir.

uyumluluk riski. Windows Uygulama SDK'sı bakım güncellemelerinin uyumluluk sorunlarına yol açan değişiklikleri beraberinde getirmesi riski. Hizmet güncellemeleri geriye dönük uyumluluk sağlamalıdır, ancak regresyonlar ortaya çıkabilir.
Daha büyük dağıtımlar (yalnızca paketlenmemiş uygulamalar). Uygulamanız Windows Uygulama SDK'sı içerdiğinden, gereken indirme boyutu ve sabit sürücü alanı çerçeveye bağımlı bir sürüm için geçerli olandan daha büyüktür.

Uygulama Performansı (yalnızca paketlenmemiş uygulamalar için),. Daha yavaş yüklenir ve kod sayfaları diğer uygulamalarla paylaşılmadığından daha fazla bellek kullanır.

Onarılamaz. Uygulamanızla dağıtılan Windows Uygulama SDK'sı sürümü yalnızca uygulamanızın yeni bir sürümü yayınlanarak güncelleştirilebilir. Windows Uygulama SDK'sı hizmet güncelleştirmelerini uygulamanızla tümleştirmek sizin sorumluluğunuzdadır.

Ayrıca bkz. İlk WinUI 3 projenizi oluşturma ve Windows Uygulama SDK'sı'yi mevcut bir projede kullanma.

Uyarı

PublishSingleFile (tek dosyalı EXE),paketlenmemiş, bağımsız WinUI 3 uygulamaları (Windows Uygulama SDK'sı 1.5 ve üzeri) için desteklenir. Paketlenmiş uygulamalar ve çerçeveye bağımlı uygulamalar PublishSingleFile öğesini desteklemez. Gerekli MSBuild özellikleri için bkz. Tek dosyalı EXE .

Çerçeveye bağımlı dağıtım hakkında daha fazla bilgi

Çerçeveye bağımlı uygulamanızı dağıtım için yapılandırmadan önce uygulamanızın Windows Uygulama SDK'sı kullanırken aldığı bağımlılıklar hakkında daha fazla bilgi edinmek için Windows Uygulama SDK'sı için Deployment mimarisini gözden geçirin.

Paketlenmiş uygulamalar

Çerçeveye bağımlı paketlenmiş bir uygulamayla gitmeyi seçtiyseniz (bkz. Deployment overview), Windows Uygulama SDK'sı çalışma zamanını uygulamayla nasıl dağıtacağınıza dair yönergeler aşağıda verilmiştir.

Dış konum veya paketlenmemiş uygulamalar ile birlikte paketlenmiş

Çerçeveye bağımlı paketlenmiş bir uygulamayı dış konumda veya çerçeveye bağımlı paketlenmemiş bir uygulamayı seçtiyseniz (bkz. Dağıtıma genel bakış), uygulamayla birlikte Windows Uygulama SDK'sı çalışma zamanını dağıtma yönergeleri şunlardır:

  • `Harici konumla veya paketlenmemiş olan, çerçeveye bağımlı uygulamalar için Windows Uygulama SDK'sı dağıtım kılavuzu`
  • Öğretici: Harici konum ile paketlenmiş veya Windows Uygulama SDK'sı kullanan paketlenmemiş bir uygulamada önyükleyici API'sini kullanın

Bağımsız dağıtım hakkında daha fazla bilgi

Bağımsız uygulamalar için bkz. Windows Uygulama SDK'sı dağıtım kılavuzu.

Uyarı

PublishSingleFile (tek dosyalı EXE), uygulamanın hem paketten çıkarılmış hem de bağımsız olmasını gerektirir. Gerekli MSBuild özelliklerinin tam listesi için bkz. Tek dosyalı EXE .

Windows Uygulama SDK'sı başlatma

Windows Uygulama SDK'sı başlatma yöntemi, uygulamanızı nasıl paketleyip paketlemediğinize ve Windows Uygulama SDK'sı çalışma zamanına göre dağıtma yönteminize bağlıdır. Uygulamanız için geçerli olan aşağıdaki bölümü kullanın.

Paketlenmiş uygulamalar

Uygulamanız nasıl dağıtılır? Nasıl başlatılır
Çerçeveye bağımlı Şuna bakın: Dağıtım API'siniçağırın.
Bağımsız Başlatma gerekmez.

Paketlenmemiş uygulamalar ve dış konumla paketlenmiş uygulamalar

Uygulamanız nasıl dağıtılır? Nasıl başlatılır
Çerçeveye bağımlı Bkz. Dış bir konuma paketlenmiş veya paketlenmemiş bir uygulamada önyükleyici API'sini kullanma.
Bağımsız Bkz. Otomatik UndockedRegFreeWinRT desteğine dahil olmayı veya olmamayı seçme.

Mimariyle ilgili dikkat edilmesi gerekenler (x64, ARM64)

Uygulamanızı dağıtırken, kullanıcılarınızın ihtiyaç duyduğu her işlemci mimarisi için ikili dosyalar eklemeniz gerekir. Bu, hem çerçeveye bağımlı hem de bağımsız dağıtım modları için geçerlidir.

ARM64 desteği

ARM cihazlarında (Surface Pro X, Surface Pro 11 ve Copilot+ PCs dahil) Windows ARM64'ü yerel olarak çalıştırır. x64 öykünmesi Windows 11 ARM64 cihazlarında kullanılabilse de, yerel ARM64 ikili dosyaları daha iyi performans ve pil ömrü sağlar ve Copilot+ PCs cihaz içi yapay zeka iş yükleri için en iyi deneyimi elde etmek istediğinizde önerilir.

Yerel ARM64 dağıtımı

  • MSIX paketleri — Hem .msixbundle hem de x64 mimarileri içeren bir ARM64 oluşturun. Visual Studio, birden çok platform için derleme yaptığınızda bunları otomatik olarak oluşturur. Mağaza ve Uygulama Yükleyicisi yükleme zamanında doğru mimariyi seçer.

  • Bağımsız yayımlama — Her mimari için çalışma zamanı tanımlayıcısını (RID) belirtin:

    dotnet publish -c Release -r win-x64 --self-contained true
    dotnet publish -c Release -r win-arm64 --self-contained true
    
  • C++/WinRT — Visual Studio çözümünüzde ve x64 için ARM64 ayrı yapılandırmalar oluşturun.

  • Çerçeveye bağımlı uygulamalar — Windows Uygulama SDK'sı çalışma zamanı yükleyicisini kullanırken, mimariye özgü doğru yükleyiciyi sağladığından emin olun. Windows Uygulama SDK'sı x64 ve ARM64 için ayrı yükleyiciler ile birlikte sunulur.

Arm64EC — büyük C/C++ kod temelleri için aşamalı geçiş

Uygulamanızın büyük bir yerel (C/C++) kod tabanı varsa ARM64'e tam yeniden derleme tek bir adımda pratik olmayabilir. Arm64EC (Öykünme Uyumlu), x64 ve ARM64 kodunu aynı işlemde karıştırmanıza olanak tanır. Performans açısından kritik modülleri ARM64 için yerel olarak yeniden derler, kalan x64 modüllerini ise tek bir ikili dosya içinde öykünme altında çalıştırırsınız.

Approach En iyi kullanım alanları Ödünleşme
ARM64 için tam yeniden derleme Saf .NET uygulamaları, küçük C++ projeleri En iyi performans; tüm bağımlılıkların ARM64 uyumlu olmasını gerektirir
Arm64EC Büyük C/C++ uygulamaları, yalnızca x64 eklentileri olan uygulamalar veya üçüncü taraf DLL'leri Aşamalı geçiş; öykünen bölümler yerel olarak çalışan bölümlerden daha yavaş çalışır
Yalnızca x64 (öykünmüş) Yeniden derlenemeyen ve en yüksek performansa ihtiyaç duymayan uygulamalar Basit; ARM64 cihazlarında daha az pil ömrü ve daha yüksek gecikme süresi

Daha fazla bilgi için bkz. Arm64EC — Arm üzerinde yerel performans için uygulamaları derleme ve taşıma.

Öykünme (Prizma)

ARM'de Windows 11, ARM64 donanımında x64 ve x86 uygulamalarını çalıştırmak için Prism adlı bir öykünme katmanı kullanır. Prism, x86/x64 yönergelerini çalışma zamanında ARM64'e çevirerek yeniden derleme gerektirmeden geniş uygulama uyumluluğu sağlar.

  • x64 öykünmesi — Yalnızca Windows 11 ARM64 cihazlarında kullanılabilir (ARM'de Windows 10 kullanılamaz).
  • x86 öykünmesi — Hem Windows 10 hem de Windows 11 ARM64 cihazlarında kullanılabilir.
  • Performans — Öykünmüş uygulamalar genellikle üretkenlik iş yükleri için kabul edilebilir bir performansla çalışır, ancak grafik yoğunluklu veya yoğun işlem yoğunluklu uygulamalar, yerel ARM64 veya Arm64EC derlemesinden önemli ölçüde yararlanıyor.

Tavsiye

Yalnızca x64'i hedeflediyseniz uygulamanız yine de Prism öykünmesi aracılığıyla ARM64 cihazlarında çalışır (yalnızca Windows 11). Ancak üretim uygulamaları için yerel ARM64 derlemeleri kesinlikle önerilir; öykünmüş uygulamalar daha fazla pil kullanır ve daha yüksek gecikme süresine sahiptir. Copilot+ PCs yerel ARM64, cihaz içi yapay zeka iş yükleri için en iyi performansı sağlayabilir.

Mağaza gönderileri için mimariye özgü paketleri veya her ikisini de içeren bir paketi karşıya yükleyin. Mağaza, her cihaza yalnızca eşleşen mimariyi sunar.