Udostępnij przez


Opakowanie aplikacji za pomocą pojedynczego projektu MSIX

MSIX z jednym projektem to funkcja umożliwiająca tworzenie spakowanej aplikacji desktopowej WinUI 3 bez konieczności tworzenia oddzielnego projektu do pakowania. Aplikacja WinUI 3 to aplikacja, która używa struktury WinUI 3 dla interfejsu użytkownika; używa zestawu SDK aplikacji systemu Windows. Aby spakować aplikację desktopową, która nie jest aplikacją WinUI 3, zobacz Konfigurowanie aplikacji desktopowej do tworzenia pakietów MSIX w programie Visual Studio.

Funkcja MSIX pojedynczego projektu jest dostępna jako rozszerzenie programu Visual Studio, którego można użyć w następujących scenariuszach:

  • Utwórz nową aplikację desktopową WinUI 3 , korzystając z szablonu projektu Visual Studio "Pusta Aplikacja, Pakietowa" (WinUI 3 dla desktopu), dostarczanego w zestawie SDK aplikacji Windows. Ten projekt jest skonfigurowany do kompilowania aplikacji w pakiecie MSIX bez konieczności oddzielnego projektu pakowania.
  • Zmodyfikuj istniejącą aplikację desktopową WinUI 3, która korzysta z oddzielnego projektu opakowania. Modyfikacja obejmuje usunięcie oddzielnego projektu pakowania, jak pokazano na poniższej ilustracji.

Porównanie projektu pakietowania do pojedynczego projektu

Przegląd

W tej sekcji przedstawiono pewne ważne szczegóły dotyczące funkcji pojedynczego projektu MSIX.

Korzyści

Przed wprowadzeniem funkcji MSIX dla pojedynczego projektu, jeśli chciałeś zbudować spakowaną aplikację klasyczną WinUI 3, potrzebne były dwa projekty w rozwiązaniu — projekt aplikacji oraz dodatkowy projekt pakietowania aplikacji dla systemu Windows (zobacz Konfigurowanie aplikacji klasycznej do pakietowania MSIX w programie Visual Studio). Funkcja MSIX dla pojedynczego projektu umożliwia projektowanie i kompilowanie aplikacji używając jedynie projektu aplikacji. Zapewnia to bardziej czytelną strukturę projektu i prostsze środowisko programistyczne. Na przykład nie musisz już wybierać oddzielnego projektu tworzenia pakietów jako projektu startowego.

Obsługiwane typy projektów

Funkcja MSIX pojedynczego projektu obsługuje szablony WinUI 3 w programie Visual Studio (C# i C++) dla pakietu Windows App SDK.

Ograniczenia

MSIX projektu pojedynczego obsługuje tylko jeden plik wykonywalny w wygenerowanym pakiecie MSIX. Jeśli musisz połączyć wiele plików wykonywalnych w jeden pakiet MSIX, musisz kontynuować korzystanie z projektu tworzenia pakietów aplikacji systemu Windows w rozwiązaniu.

Zainstaluj narzędzia do pakietowania MSIX dla jednego projektu

Narzędzia do tworzenia pakietów MSIX dla pojedynczego projektu obejmują szablony projektów programu Visual Studio, których można użyć do tworzenia nowych opakowanych aplikacji klasycznych WinUI 3. Te narzędzia są dołączone do rozszerzenia zestawu SDK aplikacji systemu Windows dla programu Visual Studio. Aby uzyskać instrukcje dotyczące instalacji zestawu SDK aplikacji systemu Windows, zobacz Install tools for the Windows App SDK.

zestaw SDK aplikacji systemu Windows 0.8 i C# w wersji 1.0 (wersja zapoznawcza 3): narzędzia do tworzenia pakietów MSIX z jednym projektem nie są nie dołączone do rozszerzenia zestawu SDK aplikacji systemu Windows dla programu Visual Studio dla systemu Windows App SDK w wersji 0.8 lub dla projektów języka C# z maksymalnie wersją zapoznawcza 3 zestawu Windows App SDK 1.0. Jeśli więc używasz tych wersji, może trzeba jawnie zainstalować narzędzia do tworzenia pakietów MSIX w jednym projekcie. Zapoznaj się z poniższymi informacjami:

Aby potwierdzić, że masz zainstalowane rozszerzenie, kliknij pozycję Rozszerzenia>Zarządzaj rozszerzeniami>Zainstalowane>wszystkie i sprawdź, czy na liście znajduje się lista Narzędzi do tworzenia pakietów MSIX z jednym projektem .

Tworzenie nowego projektu

Jeśli używasz Windows App SDK 1.0 Preview 2 lub nowszego, możesz łatwo utworzyć nową aplikację opartą na WinUI 3, która zawiera obsługę MSIX dla pojedynczego projektu, korzystając po prostu z szablonu Blank App, Packaged (WinUI 3 in Desktop). Aby uzyskać więcej informacji, zobacz Tworzenie pierwszego projektu WinUI 3.

Modyfikowanie istniejącego projektu

Wykonaj kroki opisane w tej sekcji, aby zmodyfikować istniejącą aplikację opartą na systemie WinUI 3, która korzysta z oddzielnego projektu pakowania. Kroki obejmują przeniesienie manifestu pakietu (i inną pomoc techniczną wymaganą do utworzenia pakietu MSIX) do projektu aplikacji, a następnie usunięcie oddzielnego projektu pakowania.

Krok 1: Utwórz lub otwórz istniejący projekt pakietowania

Jeśli masz już rozwiązanie dla aplikacji klasycznej WinUI 3 (zobacz szablony WinUI 3 w programie Visual Studio), które zawiera projekt pakietu aplikacji systemu Windows (zobacz Konfigurowanie aplikacji klasycznej na potrzeby tworzenia pakietów MSIX w programie Visual Studio), otwórz to rozwiązanie w programie Visual Studio teraz.

Jeśli tak nie jest, utwórz nową aplikację klasyczną WinUI 3 w programie Visual Studio przy użyciu szablonu Pusta aplikacja spakowana przy użyciu projektu pakietu aplikacji systemu Windows (WinUI 3 w programie Desktop). Rozwiązanie będzie wyglądać podobnie do poniższego zrzutu ekranu.

rozwiązanie korzystające z projektu pakowania

Krok 2. Edytowanie ustawień projektu aplikacji

Następnie zmodyfikuj niektóre ustawienia konfiguracji, aby użyć funkcji MSIX pojedynczego projektu. Istnieją różne instrukcje w zależności od typu projektu i wersji programu Visual Studio.

  1. W eksploratorze rozwiązań kliknij dwukrotnie węzeł projektu dla aplikacji, aby otworzyć plik .csproj w edytorze XML. Dodaj następujący kod XML do głównego elementu <PropertyGroup>.

    <EnableMsixTooling>true</EnableMsixTooling>
    <PublishProfile>Properties\PublishProfiles\win10-$(Platform).pubxml</PublishProfile>
    

    Gdy skończysz, element <PropertyGroup> powinien wyglądać podobnie do tego.

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>WinExe</OutputType>
        <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
        ...
        <UseWinUI>true</UseWinUI>
        <EnableMsixTooling>true</EnableMsixTooling>
        <PublishProfile>Properties\PublishProfiles\win10-$(Platform).pubxml</PublishProfile>
      </PropertyGroup>
    
  2. Zapisz zmiany i zamknij plik .csproj.

  3. Wykonaj jedną z poniższych procedur, w zależności od używanej wersji programu Visual Studio.

    dla programu Visual Studio 2022 lub nowszego:

    1. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy folder Properties znajdujący się pod węzłem projektu aplikacji, a następnie wybierz Dodaj>Nowy element....

    2. Wybierz pozycję Plik tekstowy, nadaj nowej launchSettings.jsonnazwę plikowi , a następnie kliknij przycisk Dodaj. Upewnij się, że nowy plik znajduje się w folderze właściwości projektu aplikacji.

    3. Skopiuj następujące ustawienia do nowego pliku. Możesz zmienić wartości zgodnie z potrzebami w danym scenariuszu. Wartość MyApp może być dowolnym ciągiem; nie musi być zgodna z nazwą aplikacji.

      {
          "profiles": {
              "MyApp": {
                  "commandName": "MsixPackage",
                  "commandLineArgs": "", /* Command line arguments to pass to the app. */
                  "alwaysReinstallApp": false, /* Uninstall and then reinstall the app. All information about the app state is deleted. */
                  "remoteDebugEnabled": false, /* Indicates that the debugger should attach to a process on a remote machine. */
                  "allowLocalNetworkLoopbackProperty": true, /* Allow the app to make network calls to the device it is installed on. */
                  "authenticationMode": "Windows", /* The authentication scheme to use when connecting to the remote machine. */
                  "doNotLaunchApp": false, /* Do not launch the app, but debug my code when it starts. */
                  "remoteDebugMachine": "", /* The name of the remote machine. */
                  "nativeDebugging": false /* Enable debugging for managed and native code together, also known as mixed-mode debugging. */
              }
          }
      }
      
    4. Zapisz i zamknij plik launchSettings.json.

Krok 3. Przenoszenie plików do projektu aplikacji

Następnie przenieś kilka ważnych plików do projektu aplikacji. Istnieją różne instrukcje w zależności od typu projektu.

  1. W Eksploratorze plików przenieś plik Package.appxmanifest oraz folder Images z projektu pakowania do projektu aplikacji. Umieść ten plik i folder na najwyższym poziomie hierarchii folderów projektu aplikacji.
  2. W programie Visual Studio, w Eksploratorze rozwiązań , wielokrotnie zaznacz wszystkie obrazy w folderze Images. W oknie właściwości ustaw akcję kompilacji na zawartość.
  3. Usuń projekt pakowania z rozwiązania.

Ilustracja przedstawiająca przenoszenie plików do głównej aplikacji

Krok 4. Włączanie wdrażania w programie Configuration Manager

  1. Wybierz Build>Configuration Manager.
  2. W Configuration Managerkliknij pole wyboru Deploy dla każdej kombinacji konfiguracji i platformy (na przykład Debug oraz x86, Debug oraz arm64, Release oraz x64i więcej).

    Uwaga / Notatka

    Pamiętaj, aby użyć rozwijanych list Active Solution Configuration i Active Solution Platform znajdujących się u góry zamiast list rozwijanych Configuration i Platform umieszczonych w tym samym wierszu co pole wyboru Wdrażanie.

włączanie wdrażania w Menedżerze Konfiguracji

Krok 5. Wdrażanie aplikacji

Skompiluj i wdróż projekt aplikacji. Program Visual Studio skompiluje aplikację w pakiecie MSIX, zainstaluje pakiet, a następnie uruchomi aplikację.

Krok 6. Spakowanie aplikacji do publikowania

Użyj polecenia Package & Publish w programie Visual Studio, aby spakować aplikację, aby opublikować ją w sklepie Microsoft Store.

Zautomatyzuj kompilowanie i pakowanie aplikacji MSIX dla pojedynczego projektu

Za pomocą msbuild można kompilować i pakować aplikację MSIX pojedynczego projektu, co pozwala zautomatyzować przepływ pracy. Technika dotycząca rozwiązania jednoprojektowego za pomocą wiersza polecenia różni się tylko nieznacznie od tego, co już robisz, jeśli masz rozwiązanie dwuprojektowe — jedno z Windows Application Packaging Project (zobacz Konfigurowanie aplikacji klasycznej na potrzeby tworzenia pakietów MSIX w programie Visual Studio).

Ważną opcją polecenia kompilacji dla rozwiązania z jednym projektem jest /p:GenerateAppxPackageOnBuild=true. Bez tej opcji projekt zostanie skompilowany, ale nie otrzymasz pakietu MSIX. Uwzględnij tę opcję i spowoduje to wygenerowanie pakietu MSIX.

Istnieje pełny przykład w postaci akcji usługi GitHub, która kompiluje rozwiązanie WinUI 3 z jednym projektem.

Uwaga / Notatka

Jednoprojektowy MSIX nie obsługuje obecnie tworzenia pakietów zbiorczych MSIX (zobacz Bundling pakietów MSIX). Tworzy tylko jeden plik MSIX. Można jednak powiązać pliki .msix z pakietem MSIX przy użyciu pakietu MSIX akcji usługi GitHub.

Jak spakowana aplikacja klasyczna działa w systemie Windows

Aby uzyskać głębsze zrozumienie tego, co dzieje się z plikami i wpisami rejestru podczas tworzenia pakietu aplikacji systemu Windows dla aplikacji na komputer, zobacz Opis sposobu uruchamiania spakowanych aplikacji na komputer w systemie Windows.

Prześlij opinię

Aby wysłać nam swoją opinię, zgłosić problemy lub zadać pytania dotyczące funkcji pojedynczego projektu MSIX, opublikuj dyskusję lub zgłoszenie w repozytorium GitHub Windows App SDK .