Paketlemeye genel bakış

Uygulamanızın Windows'a nasıl yüklendiğini, güncellendiğini ve entegre edildiğini paketleme belirler. WinUI 3 uygulamaları varsayılan olarak paketlenirken geleneksel Win32 uygulamaları gibi birçok masaüstü uygulaması paketlenmemiş olarak çalışır. Paketlenmiş veya paketlenmemiş bir uygulama arasında seçim, kullanabileceğiniz özellikleri, kullandığınız dağıtım modelini ve müşterilerinizin aldığı genel deneyimi etkiler.

Uyarı

Yeni bir WinUI 3 uygulaması mı oluşturuyorsunuz? Varsayılan olarak zaten paketlenmiş durumdasınız. Aşağıdaki kılavuz, genellikle mevcut bir uygulamayı taşıma, kurumsal makinelere dağıtma veya başlangıçta paketlenmiş olmayan bir uygulamaya Windows özellikleri ekleme gibi açık bir seçim yapması gereken geliştiricilere yöneliktir.

Uygulama paketleme neden önemlidir?

Paketlenmiş uygulamalar temiz bir yükleme modelinden, otomatik güncelleştirmelerden ve arka plan görevleri, bildirimler, bağlam menüsü uzantıları, paylaşım hedefleri ve diğer genişletilebilirlik noktaları gibi paket kimliği gerektiren Windows özelliklere erişim sağlar. Paketleme ayrıca Microsoft Store ve kurumsal dağıtım araçları gibi kanallar aracılığıyla daha temiz dağıtımlar, güvenilir güncelleştirmeler ve kolaylaştırılmış dağıtım sağlamaya da yardımcı olur.

Paket kimliği gerektiren özellikler

Bu Windows özellikleri, yalnızca tam MSIX paketlemesi veya dış konum kullanarak paketleme (Seyrek paketleme) yoluyla paket kimliğine sahip uygulamalarda çalışır.

Özellik Açıklama
Arka plan görevleri Uygulamanız ön planda olmadığında kod çalıştırın; örneğin, verileri eşitlemek, indirmeleri işlemek veya sistem olaylarını yanıtlamak için.
Windows AI API'leri (Phi Silica, OCR vb.) Yerel dil modelleri, metin tanıma ve görüntü analizi gibi cihaz içi yapay zeka özelliklerine erişin.
Anlık bildirimler (WNS) Windows Bildirim Hizmeti aracılığıyla bulut hizmetinizden gerçek zamanlı bildirimler alın.
Hedefi paylaşma Kullanıcıların sistem Paylaşım sayfası aracılığıyla diğer uygulamalardan doğrudan sizinkilerle içerik paylaşmasına izin verin.
Özel bağlam menüsü uzantıları Uygulamanızın eylemlerini Dosya Gezgini'ndeki sağ tıklama menüsüne ve diğer kabuk yüzeylerine ekleyin.
Dosya türü ve protokol ilişkilendirmeleri Uygulamanızı belirli dosya türleri veya URI protokolleri için işleyici olarak kaydedin (ör. yourapp://).
Başlangıç görevleri Kullanıcı Windows oturum açtığında uygulamanızı otomatik olarak başlatın.
Uygulama hizmetleri Diğer uygulamaların arayabileceği arka plan hizmetlerini kullanıma sunarak uygulamalar arası iletişimi etkinleştirme.

Tip

Paketi açtıysanız ve Windows API'leri çağırırken E_ILLEGAL_METHOD_CALL veya APPMODEL_ERROR_NO_PACKAGE hatalarıyla karşılarsanız, paket kimliği gereksinimi de bu olur. En düşük sürtünmeli çözüm olarak dış konumlu (Seyrek paketleme) paketleme işlemine bakın.

Daha fazla bilgi için bkz. Paket kimliği gerektiren özellikler.

Bir bakışta paketleme modelleri

Model Paket kimliği Yükleyici Uygun mağaza En iyi kullanım alanı:
Paketlenmiş (MSIX) ✅ Evet MSIX yükleyicinin yerini aldı ✅ Evet (MSIX gönderimi) Yeni uygulamalar, Mağaza yayımlama, kurumsal MDM
Dış konumlu paketleme ✅ Evet Mevcut yükleyiciniz ✅ Evet (MSI/EXE gönderimi) Kendi yükleyicisi olan mevcut uygulamalar, ISV'ler
Ambalajsız ❌ Hayır MSI veya EXE yükleyicisi (ayrıca: Mağaza dışı dağıtım için XCopy veya betik) ✅ Evet (MSI/EXE gönderimi — sessiz yükleme desteğine sahip bir MSI veya EXE yükleyicisi gerektirir) Geniş Win32 dağıtımı, iç araçlar

Paketlenmiş uygulamalar (MSIX)

Paketlenmiş uygulamalar MSIX kullanır ve, birçok Windows genişletilebilirlik noktası için gerekli olan paket kimliğine sahiptir. Paket kimliği, Windows platform API'lerinin çağıranı güvenilir bir şekilde tanımlamasını sağlar. Bu nedenle bu özellikler buna bağlıdır.

  • Paketlenmiş uygulamalar genellikle dosya sistemi ve kayıt defteri sanallaştırması ile basit bir uygulama kapsayıcısında çalışır (bkz. Eski uygulamalar için AppContainer ve MSIX AppContainer uygulamaları).
  • Uygulamalar gerekirse bir uygulama kapsayıcısında çalıştırılmayacak şekilde de yapılandırılabilir.
  • MSIX hem paketleme hem de yükleme için kullanılır (bkz. MSIX nedir?).

Dış konumlu paketleme (Seyrek paketleme)

Dış konumla paketleme ( seyrek paketler olarak da adlandırılır), yükleyicinizi, ikili konumlarınızı veya güncelleştirme işleminizi değiştirmeden mevcut uygulamanızın yanına küçük bir kimlik paketi kaydetmenizi sağlar. Windows 10 sürüm 2004(derleme 19041) ile kullanıma sunulmuştur.

Bu, kendi yükleyicisi (NSIS, WiX, InstallShield vb.) aracılığıyla gelen ve MSIX ile değiştirmek istemeyen mevcut Win32/WPF/WinForms uygulamaları için harika bir noktadır. Hafif bir kimlik paketi kaydedersiniz, ikili dosyalarınız oldukları yerde kalır ve paket kimliğiyle sınırlandırılmış Windows özelliklerinin tamamının kilidini açarsınız.

Kapasite MSIX Dış konum
Yükleyicinizin yerini alır Evet Hayır
Paketin içindeki ikili dosyalar Evet Hayır (dış)
Uygun mağaza Evet (MSIX gönderimi) Evet (MSI/EXE gönderimi)
Paket kimliği Evet Evet
Güncelleştirme mekanizması MSIX güncelleştirmesi Mevcut mekanizmanız

Tam izlenecek yol: Dış konumla paketleyerek paket kimliği verme

Paketlenmemiş uygulamalar

Paketlenmemiş uygulamalar MSIX kullanmaz ve paket kimliğine sahip değildir; bu da yukarıda listelenen özelliklere erişemeyecekleri anlamına gelir.

  • API yüzeyi erişimi, dosya sistemi erişimi, kayıt defteri erişimi, yükseltme ve işlem modeli açısından tamamen sınırsızdır.
  • Yükleme ve güncelleştirmeler , , .exeözel yükleyicileri, ClickOnce veya xcopy dağıtımlarını gerektirir.msi.

Paketi kaldırmayı taahhüt etmeden önce yukarıdaki özellikler tablosunu yol haritanızla karşılaştırın. Bildirimler, arka plan görevleri veya yapay zeka API'leri ufuktaysa paketlenmiş olarak başlamayı göz önünde bulundurun.

Senaryoya göre seçme

Scenario Önerilen model Ayrıntılar
Microsoft Store'a yayın yapan bağımsız geliştirici Paketlenmiş (MSIX) önerilir MSIX tercih edilen yöntemdir; Mağaza tarafından yönetilen güncelleştirmeleri, değişiklik indirmelerini ve temiz kaldırmayı etkinleştirir. WinUI 3 uygulamaları varsayılan olarak paketlenir. Kod imzalama, Mağaza tarafından ücretsiz olarak işlenir.Paketlenmiş uygulamanızı dağıtma

Mevcut MSI veya EXE yükleyicisine sahip Win32 uygulamaları MSI/EXE gönderim yolu aracılığıyla Da Store'da yayımlayabilir, ancak Mağaza güncelleştirmeleri mevcut kullanıcılara göndermez; güncelleştirmeler uygulama veya yükleyici tarafından işlenmelidir.
Intune veya Yapılandırma Yöneticisi aracılığıyla dağıtılan Kurumsal uygulama Mevcut yükleyiciler için paketlenmiş veya harici konum Yeni uygulamalar MSIX kullanmalıdır. Mevcut uygulamalar, kendi yükleyicileri ile harici konum kullanarak paketleme yapabilir. Code signing: kendi kendine imzalanmış bir sertifika (Intune, Grup İlkesi veya Yapılandırma Yöneticisi aracılığıyla güven sağlanan) veya Azure Artifact Signing (eski adıyla Güvenilir İmzalama) kullanın. → Paketlenmiş uygulamaları dağıtma
ISV, kendi yükleyicisi ile doğrudan indirme sunuyor Dış konumla paketleme Mevcut yükleyicinizle birlikte basit bir kimlik paketi kaydedin. Kod imzalama: Depolama dışı dağıtım için CA'ya güvenilen bir sertifika gereklidir. Azure Yapıt İmzalama (eski adıyla Güvenilir İmzalama) önerilen düşük maliyetli seçenektir. → Paket kimliği verme

Alternatif olarak, MSI/EXE gönderim yolu aracılığıyla mevcut yükleyicinizi Mağaza'ya gönderin.
İç araç veya geliştirici yardımcı programı Ambalajsız İnşa etmek ve yayımlamak en kolay olanıdır. Windows Uygulama SDK'sı NuGet aracılığıyla çalışır, ancak bazı özellikler kullanılamaz.

Tip

Kod imzalama maliyetlerinden emin değil misiniz? Microsoft Store aracılığıyla MSIX paketi yayımlamak, son kullanıcı güveni için ayrı olarak sertifika almanıza veya yönetmenize gerek olmadığı anlamına gelir — Microsoft paketi yeniden imzalar. Mağaza aracılığıyla bir Win32 MSI/EXE yükleyicisi yayımlamak için, Microsoft Güvenilen Kök Programı'na bağlı bir sertifika zincirlemesi gereklidir; kendi imzaladığınız sertifikalar kabul edilmez. Diğer dağıtım yollarında, imzalama yaklaşımınız dağıtım bağlamını temel alır; kurumsal ortamlar cihaz yönetimi aracılığıyla otomatik olarak imzalanan bir sertifikaya güvenebilirken, Depolama dışı daha geniş bir dağıtım için genellikle CA'ya güvenilen bir kod imzalama çözümü gerekir. Azure Yapıt İmzalama (eski adı Güvenilir İmzalama), donanım belirteci gerektirmez ve Microsoft'un önerdiği seçenektir (bkz. fiyatlandırma).

Çerçeveye bağımlı ve bağımsız dağıtım karşılaştırması

Paketleme modelinden ayrı olarak, Windows Uygulama SDK'sı kullanan uygulamalar çalışma zamanı bağımlılıklarını nasıl taşıyacaklarını seçer:

  • Framework'e bağımlı: Windows Uygulama SDK'sı çalışma zamanı kullanıcının makinesine yüklenmelidir. Daha küçük uygulama ayak izi; var olan veya otomatik yüklenen çalışma zamanını kullanır.
  • Self-contained: Tüm Windows Uygulama SDK'sı ikili dosyaları uygulamanızla birlikte sevk edilir. Daha büyük kapsama alanı; dış çalışma ortamı gereksinimi yok. Kilitli kurumsal ortamlar için uygundur.

Bağımsız uygulamalar dağıtma

MSIX ile Başlamaya Başlayın

Bir Win32 masaüstü uygulaması (bazen classic masaüstü uygulaması olarak adlandırılır) veya Windows Presentation Foundation (WPF) ve Windows Forms (WinForms) gibi bir .NET uygulaması oluşturursanız, UYGULAMANıZı MSIX kullanarak paketleyip dağıtabilirsiniz.

Diğer yükleme teknolojileri