Udostępnij przez


Akceleratory

Akcelerator zapewnia wydajny sposób konwertowania starszych aplikacji (aplikacji) na format MSIX. Zawiera ważne informacje dotyczące: pakietu (aplikacji); system operacyjny (OS), na którym odbywa się konwersja; oraz kroki wymagane do naprawienia pakietu w celu prawidłowego funkcjonowania przekonwertowanego pliku MSIX.

Wymagania wstępne

Aby wypróbować akceleratory w kompilacji wczesnej wersji zapoznawczej, dołącz do niejawnego programu MSIX Packaging Tool.

Tworzenie akceleratora

Aby wyświetlić strukturę akceleratora i użyć jej do utworzenia własnego akceleratora, zobacz przykładowe akceleratory w repozytorium GitHub MSIX-Labs .

Definicje

  • PackageName: Pakiet to aplikacja lub program (Aplikacja Win32, WPF lub Windows Forms) ze starszym instalatorem (exe, msi itp.), który jest konwertowany na format MSIX.
  • PackageVersion: wersje pakietów są skojarzone z określoną wersją. W niektórych przypadkach zobaczysz idealnie sformułowany numer wersji semantycznej ; a w innych przypadkach może być coś innego. Mogą one być oparte na dacie lub mogą mieć inne znaki z pewnym znaczeniem specyficznym dla pakietu.
  • PublisherName: nazwa oryginalnego wydawcy pakietu.
  • EligibleForConversion: niektóre aplikacje są zabronione ze względów bezpieczeństwa, korzystania ze sterowników itp. W związku z tym ta flaga służy do określania uprawnień do konwersji. Akceptowane wartości można znaleźć tutaj.
  • ConversionStatus: określ stan konwersji aplikacji. Akceptowane wartości można znaleźć tutaj.
  • RemediationApproach:
    • SequenceNumber: określa numer sekwencji kroku poprawki. Aby pomyślnie przekonwertować aplikację, kroki naprawcze należy wykonywać w określonej kolejności.
    • Problem:
      • Opis: Opis tekstu rzeczywistego problemu napotkanego podczas konwersji. Na przykład błędy rejestru lub błędy FileCreate w Procmon.
      • Referencja: (Pole opcjonalne) łącze do dokumentu zawierającego szczegółowe informacje o problemie.
    • Poprawka:
      • FixType: określony rodzaj kroku. Przykład — jeśli parametr FixType ma wartość "Capability", w tym momencie należy dodać określoną funkcję. Akceptowane wartości można znaleźć tutaj.
      • Referencja: odnośnik do dokumentu zawierającego szczegółowe informacje o poprawce i sposobie jej wykonania. To pole jest opcjonalne.
      • FixDetails: aby określić określony rodzaj poprawki wymaganej w ramach określonego fixType. Przykład — jeśli wartość Fixtype to "Dependency", funkcja FixDetails będzie miała pole typu tablicy o nazwie "Zależności", aby wyświetlić listę wszystkich zależności, które należy dodać dla aplikacji. Przypadki użycia można znaleźć tutaj.
  • MinimumPSFVersion: (Wymagane tylko wtedy, gdy co najmniej jeden z FixType używa PSF lub PackageSupportFramework). Ponieważ wersje PSF są zgodne z poprzednimi wersjami, każda wersja większa niż określona wersja będzie działać.
  • AdditionalComments: Aby wyświetlić dodatkowe informacje dotyczące konwersji aplikacji, przeznaczone wyłącznie do czytania przez człowieka. To pole jest opcjonalne.
  • Wydanie: Wydanie systemu operacyjnego. Przykład — Windows 10 Enterprise.
  • MinimumOSVersion: wersja systemu operacyjnego. Przykład — 21H1. To pole oznacza, że każda wersja większa niż określona wersja systemu operacyjnego będzie działać.
  • MinimumOSBuild: wersja kompilacji systemu operacyjnego. Przykład — "19043.1165". To pole oznacza, że każda kompilacja systemu operacyjnego większa niż określona kompilacja systemu operacyjnego będzie działać.
  • Architektura: Architektura pakietu (aplikacji). (32/64 bit)
  • MSIXConversionToolVersion: wersja narzędzia MSIX Packaging Tool używanego do konwersji. Przykład — 1.2021.709.0;
  • AcceleratorVersion: wersja używanego akceleratora. Obecnie najnowsza wersja to 1.0.0.

Opcja wiersza polecenia dla akceleratorów

W przypadku automatycznej konwersji można wygenerować szablon akceleratora za pomocą narzędzia MSIX Packaging.

  1. Upewnij się, że opcja "Generuj plik wiersza polecenia z każdym pakietem" jest zaznaczona w ustawieniach narzędzia do pakowania MSIX.

  2. Przekonwertuj aplikację przy użyciu narzędzia MSIX Packaging, stosując akcelerator w procesie konwersji.

  3. Domyślnie plik szablonu konwersji zostanie zapisany w tej samej lokalizacji co pakiet MSIX, chyba że określisz inną lokalizację zapisywania.

  4. Uruchom MsixPackagingTool.exe w trybie podwyższonego poziomu uprawnień.

  5. Uruchom następujące polecenie cmdlet, aby użyć szablonu akceleratora:

MsixPackagingTool.exe create-package --template c:\users\documents\AcceleratorTemplate.xml

Więcej informacji na temat generowania pliku szablonu na potrzeby konwersji wiersza polecenia znajduje się tutaj. Dowiedz się więcej o parametrach, które można przekazać jako argumenty wiersza polecenia tutaj.

Przypadki użycia elementu ConversionStatus

  • Powodzenie — brak wymaganej poprawki
ConversionStatus: Successful - No Fix Required
  • Powodzenie — wymagana poprawka
ConversionStatus: Successful - Fix Required

RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: App unable to install visual c++ dependency
    Fix:
      FixType: Dependency
      FixDetails:
        Dependencies:
          - Visual C++
  • Przekonwertowano z problemami
ConversionStatus: Converted With Issues

RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Shortcut not captured
    Fix:
      FixType: EntryPoint 
      FixDetails:
        EntryPointIssue: ShortcutNotCaptured
        Solution:
          - Launch from start menu
  • Nie powiodło się
ConversionStatus: Failed

RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Registry errors in Procmon
  • Nie kwalifikuje się
EligibleForConversion: No - Driver Required

ConversionStatus: Not Eligible

Przypadki użycia funkcji FixDetails

  • FixType: zdolność
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Admin Access needed to run an app 
    Fix:
      FixType: Capability
      Reference: /windows/uwp/packaging/app-capability-declarations#:~:text=or%20Visual%20Studio.-,Elevation,-The%20allowElevation%20restricted
      FixDetails:
        Capabilities:
          - allowElevation
      
  • FixType: Zależność
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: The app needs a 2008 C++ to be installed in the system
      Reference: https://forums.guru3d.com/threads/problem-running-afterburner.408768/
    Fix:
      FixType: Dependency
      Reference: https://forums.guru3d.com/threads/problem-running-afterburner.408768/
      FixDetails:
        Dependencies:
          - C++ 2008 runtime 
  • FixType: InstallationPath
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Required permissions were not granted to the VFS folder and launcher.exe was not available during msix launch
    Fix:
      FixType: InstallationPath
      Reference: /windows/msix/packaging-tool/create-app-package#package-information
      FixDetails:
        Path: C:/Users/User/AppData/Local
  • FixType: Niestandardowy
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description:  Chromium is downloaded as zip (not exe or msi).
    Fix:
      FixType: Custom
      FixDetails:
        Solution:
          - MSIX Packaging Tool Installation Step, Unzip the chromium.zip and then launch chrome.exe.
  • TypNaprawy: PSF
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: There were create file errors in process monitor
    Fix:
      FixType: PSF
      Reference: https://github.com/Microsoft/MSIX-PackageSupportFramework/tree/master/fixups/FileRedirectionFixup
      FixDetails:
        PSFConfig:
          applications:
            - id: LINELAUNCHER
              executable: LINE/bin/LineLauncher.exe
              workingDirectory: LINE/bin/
          processes:
            - executable: LineLauncher
              fixups:
                - dll: FileRedirectionFixup.dll
                  config:
                    redirectedPaths:
                      packageRelative:
                        - base: LINE/Data/
                          patterns:
                            - .*\.tst
                        - base: LINE/bin/
                          patterns:
                            - .*
  • FixType: Usługi
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: MSIX Packaging Tool failed to convert to MSIX stating a service is running outside the package.
    Fix:
      FixType: Services
      FixDetails:
        Exclude:
          - CleanupPSvc
  • TypNaprawy: PunktWejścia
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Shortcut not captured
      Reference: https://microsoft.visualstudio.com/DefaultCollection/OS/_workitems/edit/35877020
    Fix:
      FixType: EntryPoint 
      FixDetails:
        EntryPointIssue: ShortcutNotCaptured
        Solution:
          - Launch from start menu
  • FixType: InstalledLocationVirtualization
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: Test Issue
    Fix:
      FixType: InstalledLocationVirtualization
      Reference: /uwp/schemas/appxpackage/uapmanifestschema/element-uap10-installedlocationvirtualization
      FixDetails:
        UpdateActionsAttributes:
          ModifiedItems: keep
          DeletedItems: reset
          AddedItems: keep
  • FixType: LoaderSearchPathOverride
RemediationApproach:
  - SequenceNumber: 1
    Issue:
      Description: DLL not found 
    Fix:
      FixType: LoaderSearchPathOverride
      Reference: /uwp/schemas/appxpackage/uapmanifestschema/element-uap6-loadersearchpathoverride
      FixDetails:
        FolderPaths: 
          - VFS\ProgramFilesX64\LINE\lib
          - VFS\ProgramFilesX64\LINE\bin

Zaakceptowane wartości elementu EligibleForConversion

  • Tak
  • Nie.
  • Nie — wymagany sterownik

Zaakceptowane wartości dla parametru ConversionStatus

  • Powodzenie — brak wymaganej poprawki

  • Powodzenie — wymagana poprawka

  • Przekonwertowano z problemami

  • Nie powiodło się

  • Nie kwalifikuje się

Relacja między elementami EligibleForConversion i ConversionStatus

kwalifikujący się do konwersji Stan konwersji
Tak Powodzenie — Brak Wymaganej Poprawki, Powodzenie — Naprawa Wymagana, Przekonwertowano Z Problemami
Nie. Niepowodzenie, brak uprawnień
Nie — wymagany sterownik Nie kwalifikuje się

Zaakceptowane wartości dla fixType

Dopuszczalne wartości Definicje
Zdolność* Wymagane uprawnienia (np. allowElevation, uiAccess itp.) do poprawnego działania aplikacji MSIX. Należy dodać to w pliku AppManifest lub na stronie Funkcje w narzędziu do pakowania MSIX podczas konwersji. Więcej informacji można znaleźć tutaj.
Zależność Wymagane zależności (np. C++ 2008 Redistributable x86) dla aplikacji MSIX, aby działała. Pobieranie zewnętrznie w środowisku systemu operacyjnego.
Ścieżka instalacji Służy do ustawienia niestandardowej lokalizacji instalatora exe/msi, gdy umieszcza dane poza folderem domyślnym (Program Files). Ścieżka musi zostać dodana na stronie "Informacje o pakiecie" w narzędziu do tworzenia pakietów MSIX podczas konwersji. Więcej informacji można znaleźć tutaj.
Na zamówienie Poprawki, które należy wykonać ręcznie przez użytkownika, aby naprawić aplikację MSIX. Na przykład: zmiana sekwencji identyfikatora aplikacji w manifeście aplikacji.
WPO* Dodawanie poprawek struktury obsługi pakietów (np. FileRedirectionFixup), aby naprawić aplikację MSIX. Użytkownik musi utworzyć config.json i dodać config.json oraz inne niezbędne pliki DLL do pakietu podczas konwersji. Więcej informacji można znaleźć tutaj. Autor akceleratora musi podać odpowiednik YAML dla config.json w polu PSFConfig.
Usługi Usługi, które musiały zostać dołączone/wykluczone, aby aplikacja MSIX działała. Podczas konwersji należy określić w raporcie usługi narzędzia do tworzenia pakietów MSIX. Więcej informacji można znaleźć tutaj.
Punkt wejścia Aby rozwiązać problemy związane z programem EntryPoint (np. ShortcutNotCaptured). Więcej informacji można znaleźć tutaj.
InstalledLocationVirtualization* Jest to rozszerzenie, które przekierowuje wszystkie operacje zapisu z katalogu instalacyjnego aplikacji do lokalizacji w danych aplikacji. Aby uzyskać więcej informacji, zobacz tutaj i tutaj . Wartości domyślne dla modifiedItems, DeletedItems i AddedItems są zachowywane, resetuj i zachowaj odpowiednio.
LoaderSearchPathOverride* Jest to rozszerzenie, które pozwala deweloperowi aplikacji zadeklarować ścieżkę w pakiecie aplikacji, względem ścieżki głównej tego pakietu, i włączyć ją do ścieżki wyszukiwania ładowarki dla procesów aplikacji. Autor akceleratora musi podać listę ścieżek do uwzględnienia. Więcej informacji można znaleźć tutaj.

Uwaga / Notatka

Zaakceptowane typy poprawek FixType oznaczone gwiazdką (*) powyżej są automatycznie obsługiwane przez narzędzie MSIX Packaging Tool.