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 konu başlığında, otomatik başlatıcıları yapılandırma da dahil olmak üzere uygulamanızın nasıl dağıtıldığını özelleştirmek için Visual Studio proje dosyanızda (veya .csprojgibi.vcxproj) ayarlayabileceğiniz proje özellikleri açıklanmaktadır.
Windows Uygulama SDK'sında otomatik başlatıcılar
Windows Uygulama SDK'sında, işi Windows Uygulama Çalışma Zamanı'nın düzgün bir şekilde başlatıldığından emin olmak olan çeşitli yordamlar vardır. Bu yordamlar, uygulamanızın giriş noktasından önce otomatik olarak çalıştırıldığından ve sizin için başlatma işi yaptıklarından otomatik başlatıcılar olarak bilinir.
Tavsiye
Teknik ayrıntıları merak ediyorsanız. C++'ta, statik sınıf oluşturucu ile otomatik başlatıcı uygulanır. C# dilinde bir .NET modül başlatıcısı ile otomatik başlatıcı uygulanır. Bu nedenle bazen uygun terim otomatik başlatıcı olduğunda modül başlatıcının kullanıldığını duyabilirsiniz.
Otomatik başlatıcıların tümü, uygulamanızın paketleme ve dağıtım yapılandırmasına bağlı olarak varsayılan olarak koşullu olarak etkinleştirilir. Bunlar hakkında ayrıntılar şunlardır:
- Önyükleyici (dinamik bağımlılıklar olarak da bilinir) otomatik başlatıcı. Bu otomatik başlatıcı, uygulama başlangıcında önyükleyici API'sini otomatik olarak çağırır. Windows Uygulama Çalışma Zamanı'nın uygulamanın paket grafiğine eklendiğinden emin olmak için çerçeveye bağımlı paketlenmemiş uygulamalar için gereklidir. Çerçeveye bağımlı (ve bağımsız) uygulamalar hakkında bilgi için bkz. Windows Uygulama SDK'sı dağıtımına genel bakış. Paketlenmemiş (ve paketlenmiş) uygulamalar hakkında bilgi için bkz . Windows uygulamaları: paketleme, dağıtım ve işlem.
- Paketlenmiş bir uygulamada, dosya çerçeve bağımlılığını ifade ettiğinden önyükleyici/dinamik bağımlılıklar otomatik başlatıcısı
appxmanifest.xmlgerekmez. Bağımsız bir uygulama için önyükleyici/dinamik bağımlılıklar otomatik başlatıcıya ihtiyacınız yoktur çünkü bu uygulamalar çerçeveyi kullanmaz. - aracılığıyla veya
.csprojdosyanızda.vcxproj<WindowsAppSdkBootstrapInitialize>false</WindowsAppSdkBootstrapInitialize>önyükleyici/dinamik bağımlılıklar otomatik başlatıcısını devre dışı bırakabilirsiniz.
- Paketlenmiş bir uygulamada, dosya çerçeve bağımlılığını ifade ettiğinden önyükleyici/dinamik bağımlılıklar otomatik başlatıcısı
- Deployment Manager otomatik başlatıcısı. Bu, ana/tekil işlevselliği kullanan çerçeveye bağımlı paketlenmiş uygulamalar için gereklidir (örneğin, anında iletme bildirimleri), çünkü
appxmanifest.xmldosya bu bağımlılıkları ifade edemez.- Bağımsız bir uygulama için Deployment Manager otomatik başlatıcıya ihtiyacınız yoktur çünkü bu uygulamalar ana/tekil işlevselliği desteklemez.
- Daha önemli bilgiler için bu konunun devamında yer alan Deployment Manager otomatik başlatıcı bölümüne bakın.
- Kayıtsız etkinleştirme otomatik başlatıcısı. Uygulama Windows 10 Mayıs 2019 Güncelleştirmesi'nin (sürüm 1903; kod adı "19H1") önceki bir işletim sistemi sürümünde aşağı düzey çalıştırıyorsa, bu, bağımsız bir uygulamanın bildirim tabanlı çıkarılmamış kayıtsız Windows Çalışma Zamanı (WinRT) etkinleştirmesini (UndockedRegFreeWinRT) kullanması için gereklidir.
- Çerçeveye bağımlı uygulamalar ve Windows 10, sürüm 1903 veya sonraki sürümleri hedefleyen bağımsız uygulamalar için kayıtsız etkinleştirme otomatik başlatıcıya ihtiyacınız yoktur. Bu uygulamalar aracılığıyla
<WindowsAppSdkUndockedRegFreeWinRTInitialize>false</WindowsAppSdkUndockedRegFreeWinRTInitialize>geri çevirebilir.
- Çerçeveye bağımlı uygulamalar ve Windows 10, sürüm 1903 veya sonraki sürümleri hedefleyen bağımsız uygulamalar için kayıtsız etkinleştirme otomatik başlatıcıya ihtiyacınız yoktur. Bu uygulamalar aracılığıyla
- Uyumluluk otomatik başlatıcısı. Bu, bir uygulamanın hizmet yayınlama davranışını denetlemek için A/B kapsama tesislerini kullanması için gereklidir. Daha fazla bilgi için bkz . RuntimeCompatibilityOptions.
- A/B kapsaması kullanmayan uygulamalarda (varsayılan olan), uyumluluk otomatik başlatıcısı gerekmez.
Deployment Manager otomatik başlatıcısı
Windows Uygulama SDK'sı 1.8 veya üzerini kullanan bir uygulama başlatıldığında, Deployment Manager otomatik başlatıcısı varsayılan olarak çalışır. Ama bunun olmasını geri çevirebilirsiniz. Bu bölümde, Deployment Manager otomatik başlatıcısının çalışmasına izin vermenin avantajları ve uyarıları açıklanmaktadır ve geri çevirip vazgeçmeyeceğiniz konusunda karar vermenize yardımcı olur.
Uygulamanızın Main/Singleton paketlerindeki işlevleri kullanabilmesi için (örneğin anında iletme bildirimleri): 1. Bu paketlerin dağıtıldığından emin olmak için Dağıtım API'sini kullanmanız gerekir (Çünkü Main/Singleton paketleri çerçeveler değil, uygulamalar gibi "ana" paketlerdir; bu nedenle uygulamanızın appx bildiriminde bağımlılık olarak kaydedilemezler. Bunun yerine Dağıtım API'si bu paketleri dağıtma işlevselliğini sağlar). 2. 1 nedeniyle uygulamanızın DeploymentManager.Initialize öğesinin çağrılmasına neden olarak Deployment Manager'ı başlatması gerekir. Uygulamanız bunu göreceğimiz gibi otomatik olarak veya açıkça yapabilir. 3. Uygulamanızın Main/Singleton paketlerine bağımlılık alması için çerçeveye bağımlı paketlenmiş bir uygulama olması gerekir.
Deployment Manager'ı başlatmanın bir yolu, Deployment Manager otomatik başlatıcısının çalışmasına izin vermektir (bu konunun önceki bölümlerinde yer alan Windows Uygulama SDK'sında otomatik başlatıcılar bölümüne bakın). Deployment Manager otomatik başlatıcısı sizin için DeploymentManager.Initialize öğesini çağırır. Deployment Manager'ı başlatmanın diğer yolu, DeploymentManager.Initialize öğesini açıkça çağırmaktır .
Uygulamanızın (Windows Uygulama SDK'sı 1.8 veya üzerini kullanarak) Main/Singleton paketlerine ihtiyacı yoksa, uygulamanızın proje dosyasında WindowsAppSdkDeploymentManagerInitialize özelliğini false olarak ayarlayarak Deployment Manager otomatik başlatıcısını devre dışı bırakmanız gerekir.
Uygulamanızın (Windows Uygulama SDK'sı 1.8 veya üzerini kullanarak) Main /Singleton paketlerine ihtiyacı varsa şunları yapabilirsiniz:
- Deployment Manager otomatik başlatıcısının çalışmasına izin ver (varsayılan olarak çalışır),
- veya uygulamanızın proje dosyasında WindowsAppSdkDeploymentManagerInitialize özelliğini false olarak ayarlayarak Deployment Manager otomatik başlatıcısını geri çevirebilirsiniz. Ardından DeploymentManager.Initialize öğesini açıkça çağırmalısınız.
Önemli
AppContainer'da çalışan herhangi bir işlem için DeploymentManager.Initialize öğesinin çağrılmasına neden olursanız uygulamanızın packageManagementpaket bildiriminizdekısıtlanmış özelliği bildirmesi gerekir.
Proje özellikleri
Aşağıdaki tabloda, uygulamanızın proje dosyasında ayarlayabileceğiniz özellikler yer alır. Windows Uygulama SDK'sında otomatik başlatıcılar hakkında ayrıntılı bilgi için önceki bölüme (yukarıdaki) bakın.
| Özellik adı ve açıklaması | Değerler | Daha fazla bilgi için |
|---|---|---|
| AppxPackage. Bir WinUI 3 uygulamasının paketlenip paketlenmediğini belirtir. | false (paketlenmemiş bir uygulama için) veya yok (paketlenmiş bir uygulama için) | WinUI uygulamasının paketini açma |
| EnableMsixTooling. Bir proje için tek projeli MSIX özelliğini etkinleştirir. | true (etkinleştirmek için) veya yok (devre dışı bırakmak için) | Tek projeli MSIX kullanarak uygulamanızı paketleme |
| UseWinUI. Uygulamanızda WinUI 3 kullanıcı arabirimi çerçevesini kullanıp kullanmadığınızı belirtir. | true veya yok ( false için) | Windows Uygulama SDK'sında WinUI (WinUI 3) |
| WindowsAppSdkBootstrapInitialize. Windows Uygulama SDK'sının önyükleyici/dinamik bağımlılıklar otomatik başlatıcısını kullanıp kullanmadığını belirler. | true (yürütülebilir dosyalar için varsayılan), false (yürütülemeyenler için varsayılan) | Otomatik başlatıcıları geri çevirme (veya başlatma) |
| WindowsAppSdkDeploymentManagerInitialize. Windows Uygulama SDK'sının Deployment Manager otomatik başlatıcısını kullanıp kullanmadığını belirler. | true (varsayılan), false | |
| WindowsAppSDKRuntimePatchLevel1, WindowsAppSDKRuntimePatchLevel2 ve WindowsAppSDKDisabledChanges. Windows Uygulama SDK'sının uyumluluk otomatik başlatıcıdan yararlanıp yararlanmadığını belirler ve hizmet güncelleştirmelerine eklenen değişikliklerin Windows Uygulama Çalışma Zamanı davranışı için istenen uyumluluk seçeneklerini yapılandırılır. | Çeşitli veya yok (otomatik başlatıcıyı devre dışı bırakmak için) | RuntimeCompatibilityOptions |
| WindowsAppSdkSelfContained. Bir uygulamanın bağımsız olarak dağıtılıp dağıtılmayacağını belirler. | true veya yok ( false için) | Bağımsız uygulamalar için Windows Uygulama SDK'sı dağıtım kılavuzu |
| WindowsAppSdkUndockedRegFreeWinRTInitialize. Windows Uygulama SDK'sının Kayıtsız etkinleştirme otomatik başlatıcısını kullanıp kullanmadığını belirler. | true (yürütülebilir dosyalar için varsayılan), false (yürütülemeyenler için varsayılan) | Otomatik UndockedRegFreeWinRT desteğini geri çevirme |
WindowsPackageType. Paketlenmemiş bir uygulamanın ayarlanması <WindowsPackageType>None</WindowsPackageType> , önyükleyici/dinamik bağımlılıklar otomatik başlatıcısının uygulamanız için en uygun Windows Uygulama SDK sürümünü bulmasına ve yüklemesine neden olur. |
Yok veya yok (otomatik başlatıcıyı devre dışı bırakmak için) |
WinUI uygulamasının paketini açma Arka planda ve otomatik başlatıcıları geri çevirme |
Example
Aşağıda, C# WinUI 3 projesinin tipik .csproj bir dosyasından, kullanımda olan yukarıdaki tabloda yer alan proje özelliklerinden bazılarını gösteren bir alıntı verilmiştir.
...
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
<TargetPlatformMinVersion>10.0.17763.0</TargetPlatformMinVersion>
...
<UseWinUI>true</UseWinUI>
<EnableMsixTooling>true</EnableMsixTooling>
</PropertyGroup>
...
İlgili konular
- Dağıtıma genel bakış
- İlk WinUI 3 (Windows Uygulama SDK'sı) projenizi oluşturma
- Tek projeli MSIX kullanarak uygulamanızı paketleme
- RuntimeCompatibilityOptions
- Harici konumla paketlenmiş veya paketlenmemiş uygulamalar için Windows App SDK çalışma zamanını kullanma
- Bağımsız uygulamalar için Windows Uygulama SDK'sı dağıtım kılavuzu
- Windows Uygulama SDK'sı dağıtımına genel bakış
- Windows uygulamaları: paketleme, dağıtım ve işlem
- Windows Uygulama SDK'sında WinUI (WinUI 3)
Windows developer