Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym temacie opisano właściwości projektu, które można ustawić w pliku projektu programu Visual Studio (na przykład .csproj lub .vcxproj), aby dostosować sposób wdrażania aplikacji, w tym konfigurowanie inicjatorów automatycznych.
Automatyczne inicjowanie w zestawie SDK aplikacji systemu Windows
W zestawie SDK aplikacji systemu Windows istnieje kilka procedur, których zadaniem jest upewnienie się, że środowisko uruchomieniowe aplikacji systemu Windows jest prawidłowo zainicjowane. Te procedury są znane jako automatyczne inicjatory, ponieważ są uruchamiane automatycznie przed punktem wejścia aplikacji i wykonują pracę inicjowania.
Wskazówka
Jeśli interesuje Cię szczegóły techniczne. W języku C++inicjator automatyczny jest implementowany za pomocą konstruktora klasy statycznej. W języku C# inicjator automatycznego jest implementowany za pomocą inicjatora modułu platformy .NET. W związku z tym czasami można usłyszeć inicjator modułu używany, gdy właściwy termin jest inicjatorem automatycznym.
Wszystkie automatyczne inicjatory są domyślnie włączone warunkowo na podstawie konfiguracji pakowania i wdrażania aplikacji. Poniżej przedstawiono szczegółowe informacje o nich:
- Automatyczne inicjowanie programu inicjatora rozruchowego (nazywanego również zależnościami dynamicznymi). Ten automatyczny inicjator automatycznie wywołuje interfejs API programu inicjatora podczas uruchamiania aplikacji. Jest to wymagane w przypadku aplikacji rozpakowanych zależnych od platformy, aby upewnić się, że środowisko uruchomieniowe aplikacji systemu Windows zostanie dodane do grafu pakietów aplikacji. Aby uzyskać informacje o aplikacjach zależnych od platformy (i samodzielnych), zobacz Omówienie wdrażania zestawu SDK aplikacji systemu Windows. Aby uzyskać informacje o aplikacjach rozpakowanych (i spakowanych), zobacz Aplikacje systemu Windows: pakowanie, wdrażanie i przetwarzanie.
- W przypadku spakowanej aplikacji nie potrzebujesz automatycznego inicjatora uruchamiania/zależności dynamicznych, ponieważ
appxmanifest.xmlplik wyraża zależność platformy. W przypadku aplikacji samodzielnej nie potrzebujesz automatycznego inicjatora uruchamiania/zależności dynamicznych, ponieważ te aplikacje nie korzystają ze struktury. - Możesz zrezygnować z automatycznego inicjatora uruchamiania/zależności dynamicznych w pliku
.csprojlub.vcxprojza pomocą polecenia<WindowsAppSdkBootstrapInitialize>false</WindowsAppSdkBootstrapInitialize>.
- W przypadku spakowanej aplikacji nie potrzebujesz automatycznego inicjatora uruchamiania/zależności dynamicznych, ponieważ
- Automatyczne inicjowanie programu Deployment Manager. Jest to wymagane w przypadku aplikacji zależnych od struktury, które korzystają z funkcji main/singleton (na przykład powiadomień wypychanych), ponieważ
appxmanifest.xmlplik nie może wyrazić tych zależności.- W przypadku aplikacji samodzielnej nie potrzebujesz automatycznego inicjowania menedżera wdrażania, ponieważ te aplikacje nie obsługują funkcji main/singleton.
- Aby uzyskać więcej ważnych informacji, przejdź do sekcji Samoinicjator Menedżera Wdrażania w dalszej części tego tematu.
- Automatyczne inicjowanie aktywacji bez rejestracji. Jest to wymagane, aby samodzielna aplikacja korzystała z oddokowanej bez manifestu aktywacji środowiska Uruchomieniowego systemu Windows (WinRT) (UndockedRegFreeWinRT), jeśli aplikacja działa w dół w wersji systemu operacyjnego starszej niż Windows 10 maja 2019 Update (wersja 1903; nazwa kodowa "19H1").
- W przypadku aplikacji zależnych od platformy i dla aplikacji samodzielnie zawartych w systemie Windows 10 w wersji 1903 lub nowszej nie potrzebujesz automatycznego inicjowania aktywacji bez rejestracji. Te aplikacje mogą zrezygnować za pośrednictwem usługi
<WindowsAppSdkUndockedRegFreeWinRTInitialize>false</WindowsAppSdkUndockedRegFreeWinRTInitialize>.
- W przypadku aplikacji zależnych od platformy i dla aplikacji samodzielnie zawartych w systemie Windows 10 w wersji 1903 lub nowszej nie potrzebujesz automatycznego inicjowania aktywacji bez rejestracji. Te aplikacje mogą zrezygnować za pośrednictwem usługi
- Automatyczne inicjowanie zgodności. Jest to wymagane, aby aplikacja korzystała z obiektów zawierających A/B w celu kontrolowania zachowania wersji obsługi. Aby uzyskać więcej informacji, zobacz RuntimeCompatibilityOptions.
- W przypadku aplikacji, które nie używają zawierania A/B (co jest ustawieniem domyślnym), nie potrzebujesz automatycznego inicjowania zgodności.
Automatyczny inicjalizator Menedżera Wdrażania
Po uruchomieniu aplikacji korzystającej z zestawu Windows App SDK 1.8 lub nowszego program Deployment Manager jest domyślnie uruchamiany automatycznie. Ale możesz zrezygnować z zajścia tego. W tej sekcji wyjaśniono korzyści i zastrzeżenia dotyczące zezwalania na automatyczne inicjowanie programu Deployment Manager i pomaga zdecydować, czy zrezygnować z niej.
Aby Twoja aplikacja mogła korzystać z funkcjonalności w pakietach Main/Singleton (na przykład powiadomienia push): 1. Musisz użyć interfejsu API Deployment, aby upewnić się, że te pakiety są wdrażane. Pakiety Main/Singleton nie są frameworkami, ale "głównymi" pakietami, podobnie jak aplikacje, dlatego nie mogą być zarejestrowane jako zależności w manifestu appx aplikacji. Zamiast tego interfejs API Deployment zapewnia funkcjonalność do wdrażania tych pakietów. 2. Z powodu 1 aplikacja musi zainicjować Menedżera wdrażania, powodując wywołanie DeploymentManager.Initialize. Aplikacja może to zrobić automatycznie lub jawnie, jak zobaczymy. 3. Aplikacja musi być aplikacją zależną od platformy, aby polegała na pakietach Main/Singleton.
Jednym ze sposobów inicjowania menedżera wdrażania jest umożliwienie uruchamiania automatycznego inicjatora menedżera wdrażania (zobacz sekcję Automatyczne inicjowanie w zestawie SDK aplikacji systemu Windows we wcześniejszej części tego tematu). Inicjator automatyczny Menedżera Wdrażania wywołuje metodę DeploymentManager.Initialize za Ciebie. Innym sposobem inicjowania menedżera wdrażania jest jawne wywołanie metody DeploymentManager.Initialize samodzielnie.
Jeśli aplikacja (przy użyciu zestawu Windows App SDK 1.8 lub nowszego) nie wymaga pakietów Main/Singleton, należy zrezygnować z automatycznego inicjowania menedżera wdrażania, ustawiając właściwość WindowsAppSdkDeploymentManagerInitialize na wartość false w pliku projektu aplikacji.
Jeśli aplikacja (przy użyciu zestawu Windows App SDK 1.8 lub nowszego) wymaga pakietów Main/Singleton, możesz wykonać następujące czynności:
- Zezwalaj na automatyczne inicjowanie programu Deployment Manager (domyślnie),
- lub zrezygnować z automatycznego inicjowania menedżera wdrażania, ustawiając właściwość WindowsAppSdkDeploymentManagerInitialize na false w pliku projektu aplikacji. Następnie należy jawnie wywołać metodę DeploymentManager.Initialize samodzielnie.
Ważne
W przypadku dowolnego procesu uruchomionego w aplikacji AppContainer, jeśli wywołasz metodę DeploymentManager.Initialize , aplikacja musi zadeklarować packageManagementograniczoną możliwość w manifeście pakietu.
Właściwości projektu
W poniższej tabeli znajdują się właściwości, które można ustawić w pliku projektu aplikacji. Zobacz poprzednią sekcję (powyżej), aby uzyskać szczegółowe informacje na temat inicjatorów automatycznych w zestawie SDK aplikacji systemu Windows.
| Nazwa i opis właściwości | Wartości | Aby uzyskać więcej informacji |
|---|---|---|
| Pakiet AppxPackage. Określa, czy aplikacja WinUI 3 jest spakowana. | false (dla niezapakowanej aplikacji) lub nieobecnej (dla spakowanej aplikacji) | Rozpakowywanie aplikacji WinUI |
| EnableMsixTooling. Włącza funkcję MSIX pojedynczego projektu dla projektu. | true (aby włączyć) lub nieobecny (aby wyłączyć) | Pakowanie aplikacji przy użyciu pliku MSIX z jednym projektem |
| UseWinUI. Określa, czy używasz struktury interfejsu użytkownika WinUI 3 w aplikacji. | true, lub nieobecny (dla wartości false) | WinUI w zestawie SDK aplikacji systemu Windows (WinUI 3) |
| WindowsAppSdkBootstrapInitialize. Określa, czy zestaw SDK aplikacji systemu Windows korzysta z inicjatora uruchamiania/zależności dynamicznych. | true (wartość domyślna dla plików wykonywalnych), false (wartość domyślna dla plików wykonywalnych) | Rezygnacja z autoicjalizatorów (lub do) |
| WindowsAppSdkDeploymentManagerInitialize. Określa, czy zestaw SDK aplikacji systemu Windows korzysta z automatycznego inicjatora menedżera wdrażania. | true (wartość domyślna), false | |
| WindowsAppSDKRuntimePatchLevel1, WindowsAppSDKRuntimePatchLevel2 i WindowsAppSDKDisabledChanges. Określa, czy zestaw SDK aplikacji systemu Windows korzysta z automatycznego inicjowania zgodności, i konfiguruje wszelkie żądane opcje zgodności dla zachowania środowiska uruchomieniowego aplikacji systemu Windows dotyczące zmian dodanych w aktualizacjach obsługi. | Różne lub nieobecne (aby wyłączyć automatyczne inicjowanie) | RuntimeCompatibilityOptions |
| WindowsAppSdkSelfContained. Określa, czy aplikacja jest wdrażana samodzielnie. | true, lub nieobecny (dla wartości false) | Przewodnik wdrażania zestawu SDK aplikacji systemu Windows dla aplikacji samodzielnie zawartych |
| WindowsAppSdkUndockedRegFreeWinRTInitialize. Określa, czy zestaw SDK aplikacji systemu Windows korzysta z automatycznego inicjowania aktywacji bez rejestracji. | true (wartość domyślna dla plików wykonywalnych), false (wartość domyślna dla plików wykonywalnych) | Rezygnacja z (lub do) automatycznej obsługi OddokowanyRegFreeWinRT |
WindowsPackageType. Ustawienie <WindowsPackageType>None</WindowsPackageType> dla niezapakowanej aplikacji powoduje automatyczne inicjowanie inicjatorów/zależności dynamicznych uruchamiania w celu zlokalizowania i załadowania wersji zestawu SDK aplikacji systemu Windows, która jest najbardziej odpowiednia dla aplikacji. |
Brak lub brak (aby wyłączyć automatyczne inicjowanie) |
Rozpakowywanie aplikacji WinUI Za kulisami i rezygnacja z automatycznych inicjatorów |
Example
Oto fragment typowego .csproj pliku dla projektu WinUI 3 języka C#, który przedstawia niektóre właściwości projektu z powyższej tabeli.
...
<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>
...
Tematy pokrewne
- Omówienie wdrażania
- Tworzenie pierwszego projektu WinUI 3 (Windows App SDK)
- Pakowanie aplikacji przy użyciu pliku MSIX z jednym projektem
- RuntimeCompatibilityOptions
- Korzystanie ze środowiska uruchomieniowego Windows App SDK do aplikacji spakowanych za pomocą lokalizacji zewnętrznej lub nieopakowanych
- Przewodnik wdrażania zestawu SDK aplikacji systemu Windows dla aplikacji samodzielnie zawartych
- Omówienie wdrażania zestawu SDK aplikacji systemu Windows
- Aplikacje systemu Windows: pakowanie, wdrażanie i przetwarzanie
- WinUI w zestawie SDK aplikacji systemu Windows (WinUI 3)
Windows developer