Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera wskazówki dotyczące wdrażania aplikacji zależnych od frameworka (zobacz Co to jest MSIX?), które korzystają z Zestaw SDK do aplikacji systemu Windows. Równoważnym tematem dla różnych opcji pakowania zależnych od frameworku jest Zestaw SDK do aplikacji systemu Windows - przewodnik dotyczący wdrażania dla aplikacji zależnych od frameworku, spakowanych z zewnętrzną lokalizacją lub bez pakietu.
Overview
Domyślnie, gdy tworzysz projekt przy użyciu jednego z szablonów WinUI 3 w programie Visual Studio, projekt jest skonfigurowany do kompilowania aplikacji do pakietu MSIX przy użyciu mechanizmu MSIX dla pojedynczego projektu (zobacz Pakowanie aplikacji przy użyciu mechanizmu MSIX dla pojedynczego projektu) albo projektu pakowania aplikacji systemu Windows (zobacz Konfigurowanie aplikacji klasycznej na potrzeby pakowania MSIX w programie Visual Studio). Następnie możesz utworzyć pakiet MSIX dla swojej aplikacji, korzystając z instrukcji w Pakowanie aplikacji desktopowej lub UWP w Visual Studio. Po utworzeniu pakietu MSIX dla aplikacji masz kilka opcji Zarządzanie wdrożeniem MSIX.
Aby dowiedzieć się więcej na temat pakietów, których może potrzebować spakowana aplikacja w przypadku korzystania z Zestaw SDK do aplikacji systemu Windows, zobacz Architektura wdrażania dla Zestaw SDK do aplikacji systemu Windows. Należą do nich pakiety Framework, Main i Singleton ; które są podpisane i opublikowane przez firmę Microsoft. Istnieją dwa główne wymagania dotyczące wdrażania spakowanej aplikacji:
Prerequisites
- W przypadku spakowanych aplikacji zależność pakietu bibliotek VCLibs jest wymagana. Aby uzyskać więcej informacji, zobacz pakiety środowiska uruchomieniowego C++ dla Desktop Bridge.
- C#. wymagana jest .NET 6 lub nowsza wersja. Aby uzyskać więcej informacji, zobacz .NET Downloads.
Zainstaluj pakiet frameworka Zestaw SDK do aplikacji systemu Windows
Pakiet platformy Zestaw SDK do aplikacji systemu Windows zawiera pliki binarne Zestaw SDK do aplikacji systemu Windows używane w czasie wykonywania i jest instalowany z aplikacją. Platforma ma różne wymagania dotyczące wdrażania dla różnych kanałów Zestaw SDK do aplikacji systemu Windows.
Stabilna wersja
Po zainstalowaniu stabilnej wersji pakietu NuGet Zestaw SDK do aplikacji systemu Windows na komputerze dewelopera i utworzeniu projektu przy użyciu jednego z dostarczonych szablonów projektów WinUI wygenerowany manifest pakietu zawiera PackageDependency element określający zależność od pakietu struktury.
Jednak w przypadku ręcznego kompilowania pakietu aplikacji przy użyciu oddzielnego projektu tworzenia pakietów aplikacji Windows należy zadeklarować PackageReference w pliku Application (package).wapproj, jak pokazano poniżej:
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.8.260209005">
<IncludeAssets>build</IncludeAssets>
</PackageReference>
</ItemGroup>
Ta zależność pakietu gwarantuje, że pakiet framework jest instalowany po wdrożeniu aplikacji na innym komputerze.
Wersja zapoznawcza
Podczas instalowania wersji zapoznawczej pakietu NuGet Zestaw SDK do aplikacji systemu Windows na komputerze dewelopera wersja zapoznawcza pakietu platformy Zestaw SDK do aplikacji systemu Windows jest wdrażana w czasie kompilacji jako zależność pakietu NuGet.
Wywołaj interfejs API wdrażania
Zobacz również Initialize Zestaw SDK do aplikacji systemu Windows.
Interfejs API wdrażania jest dostarczany przez pakiet platformy Zestaw SDK do aplikacji systemu Windows i jest dostępny w Microsoft.Windows.ApplicationModel.WindowsAppRuntime przestrzeni nazw. Model aplikacji Windows nie obsługuje deklarowania zależności od pakietów Main i Singleton. Dlatego interfejs API wdrażania jest wymagany z następujących powodów:
- Aby wdrożyć pakiet Singleton dla funkcji, które nie znajdują się w pakiecie Framework (na przykład powiadomienia push).
- Aby wdrożyć pakiet Main, który umożliwia automatyczne aktualizacje pakietu framework ze Sklepu Microsoft.
W przypadku spakowanych aplikacji, które nie są dystrybuowane za pośrednictwem Sklepu, ty jako deweloper odpowiadasz za dystrybucję pakietu Framework. Zalecamy wywołanie Deployment API, aby wszelkie istotne aktualizacje serwisowe były dostarczane. Należy pamiętać, że w przypadku korzystania z funkcji spoza pakietu Framework (na przykład powiadomień wypychanych), pakiet Singleton musi zostać wdrożony. Można to zrobić za pomocą API wdrażania lub redystrybuować pakiety MSIX, korzystając z własnej metody instalacji.
Important
Tylko spakowane aplikacje, które są pełnego zaufania lub które mają ograniczoną zdolność packageManagement, mają uprawnienia do instalowania zależności pakietu Main i Singleton za pomocą API Deployment.
Interfejs API wdrażania należy wywołać po zainicjowaniu procesu aplikacji, ale zanim aplikacja będzie używać funkcji środowiska uruchomieniowego Zestaw SDK do aplikacji systemu Windows, które korzystają z pakietu Singleton (na przykład powiadomień push). Główne metody interfejsu API wdrażania to statyczne metody GetStatus i Initialize klasy DeploymentManager .
- Metoda
GetStatus0 zwraca bieżący stan wdrożenia aktualnie załadowanego środowiska uruchomieniowego Zestaw SDK do aplikacji systemu Windows. Użyj tej metody, aby określić, czy wymagana jest praca w celu zainstalowania pakietów środowiska uruchomieniowego Zestaw SDK do aplikacji systemu Windows, zanim bieżąca aplikacja będzie mogła korzystać z funkcji Zestaw SDK do aplikacji systemu Windows. - Metoda Initialize sprawdza, czy wszystkie wymagane pakiety są obecne do minimalnej wersji wymaganej przez aktualnie załadowane środowisko uruchomieniowe Zestaw SDK do aplikacji systemu Windows. Jeśli brakuje żadnych zależności pakietów, metoda próbuje zarejestrować brakujące pakiety. Począwszy od wersji Zestaw SDK do aplikacji systemu Windows 1.1, Initialize obsługuje również opcję wymuszania wdrożenia pakietów środowiska uruchomieniowego Zestaw SDK do aplikacji systemu Windows. Spowoduje to zamknięcie wszystkich procesów dla pakietów środowiska uruchomieniowego Main i Singleton , a tym samym przerwanie ich usług (na przykład powiadomienia wypychane nie będą dostarczać powiadomień w tym czasie). Należy wywołać metodę Initialize tylko raz. Nie musisz wywoływać Initialize dla aplikacji wdrożonych przy użyciu Rozpocznij bez debugowania i Rozpocznij debugowanie w Visual Studio.
Important
Wartość domyślna właściwości Visual Studio <WindowsAppSdkDeploymentManagerInitialize> to true. Jeśli więc chcesz wywołać DeploymentManager.Initialize jawnie, ustaw <WindowsAppSdkDeploymentManagerInitialize>false</WindowsAppSdkDeploymentManagerInitialize> w pliku projektu Visual Studio.
Przykładowa aplikacja "API Deployment"
Aby uzyskać dodatkowe wskazówki dotyczące używania metod GetStatus i Initialize klasy DeploymentManager , zapoznaj się z dostępną przykładową aplikacją.
Usuwanie błędów instalacji
Jeśli interfejs API wdrażania napotka błąd podczas instalacji pakietów środowiska uruchomieniowego Zestaw SDK do aplikacji systemu Windows, zwraca kod błędu opisujący problem.
W poniższej tabeli wymieniono typowe kody błędów z interfejsu API wdrażania i ich typowe przyczyny:
| Kod błędu | Name | Typowa przyczyna |
|---|---|---|
| 0x80070005 | ACCESS_DENIED | Aplikacja nie ma pełnego zaufania lub nie ma zastrzeżonej możliwości packageManagement. Uruchom z podwyższonymi uprawnieniami lub dodaj wymagane uprawnienie. |
| 0x80073CF0 | ERROR_INSTALL_OPEN_PACKAGE_FAILED | Pakiet MSIX jest uszkodzony lub niedostępny. Sprawdź, czy plik pakietu jest nienaruszony, a ścieżka jest poprawna. |
| 0x80073CF3 | ERROR_INSTALL_PREREQUISITE_FAILED | Brak wymaganego pakietu zależności lub jest on niezgodny. Upewnij się, że zainstalowano pakiet platformy VCLibs i wszystkie inne wymagania wstępne. |
| 0x80073D06 | ERROR_PACKAGES_IN_USE | Co najmniej jeden pakiet jest używany i nie można go zaktualizować. Zamknij wszystkie aplikacje przy użyciu środowiska uruchomieniowego Zestaw SDK do aplikacji systemu Windows, a następnie ponów próbę. |
| 0x80073CFB | ERROR_PACKAGE_ALREADY_EXISTS | Wersja pakietu jest już zarejestrowana. To tylko informacja — aplikacja może działać dalej. |
| 0x80073CF9 | ERROR_INSTALL_FAILED | Ogólny błąd instalacji. Sprawdź dzienniki zdarzeń, aby uzyskać więcej szczegółów (zobacz poniżej). |
Wskazówka
Aby uzyskać pełną listę kodów błędów instalacji pakietu MSIX, zobacz Rozwiązywanie problemów z pakowaniem, wdrażaniem i wykonywaniem zapytań dotyczących aplikacji Windows.
Jeśli kod błędu nie dostarcza wystarczającej ilości informacji, możesz znaleźć więcej informacji diagnostycznych w szczegółowych dziennikach zdarzeń (zobacz Uzyskiwanie informacji diagnostycznych). Dzienniki zdarzeń znajdują się w Podgląd zdarzeń w obszarze Dzienniki> aplikacji i usług Microsoft>Windows>AppxDeployment-Server.
Jeśli wystąpią błędy, których nie można zdiagnozować, zgłoś problem w WindowsAppSDK GitHub repozytorium z kodem błędu i dziennikami zdarzeń, abyśmy mogli zbadać problem.
Tematy pokrewne
- Architektura wdrożenia dla Zestaw SDK do aplikacji systemu Windows
- Zestaw SDK do aplikacji systemu Windows przewodnik wdrożeniowy aplikacji zależnych od środowiska, pakowanych z zewnętrzną lokalizacją lub bez pakowania
- Kanały wydania
- Opakuj aplikację przy użyciu MSIX z jednym projektem
- Co to jest MSIX?
- Rozwiązywanie problemów z pakowaniem, wdrażaniem i wykonywaniem zapytań dotyczących aplikacji Windows
- Spakowanie aplikacji klasycznej lub aplikacji UWP w programie Visual Studio
- Zarządzanie wdrożeniem MSIX