Tworzenie pakietu aplikacji CLI w formacie MSIX

Ten przewodnik przeprowadzi Cię przez proces pakowania istniejącego pliku wykonywalnego wiersza polecenia jako pakietu MSIX do dystrybucji za pośrednictwem systemu Windows Menedżer pakietów (winget), Sklepu Microsoft lub dystrybucji bezpośredniej.

Wymagania wstępne

  • Istniejący plik wykonywalny interfejsu wiersza polecenia (.exe), który chcesz spakować
  • Windows 10 w wersji 1809 lub nowszej

Kroki

1. Organizacja aplikacji CLI

Umieść program wykonywalny CLI oraz wszystkie zależności w przeznaczonym do tego folderze. Ten folder będzie zawierać wszystkie pliki, które powinny zostać uwzględnione w pakiecie MSIX.

mkdir MyCliPackage
cd MyCliPackage
# Copy your CLI executable and dependencies here

2. Instalowanie interfejsu wiersza polecenia winapp

Zainstaluj interfejs wiersza polecenia winapp za pomocą Windows Menedżer pakietów lub zaktualizuj go do najnowszej wersji, jeśli masz go już:

# Install (or update if already installed)
winget install microsoft.winappcli --source winget

3. Wygeneruj plik Package.appxmanifest

Wygeneruj podstawowy plik Package.appxmanifest i wymagane zasoby dla pliku wykonywalnego interfejsu wiersza polecenia:

winapp manifest generate --executable .\yourcli.exe

To polecenie tworzy plik Package.appxmanifest w bieżącym katalogu, wypełniając go wartościami domyślnymi pobranymi z pliku wykonywalnego.

4. Konfigurowanie manifestu

Edytuj wygenerowany Package.appxmanifest element, aby dostosować pakiet. W każdym kroku podrzędnym poniżej wyjaśniono, co należy zmienić i dlaczego.

4.1. Dodaj wymaganą przestrzeń nazw

Dodaj przestrzeń nazw uap5 do elementu Package, jeśli nie jest już dodana. Jest to potrzebne dla aliasu wykonywawczego w kroku 4.3:

<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  ...
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
  IgnorableNamespaces="uap uap5 rescap">

4.2. Konfigurowanie elementu aplikacji

W elememencie <uap:VisualElements> dodaj polecenie AppListEntry="none" , aby ukryć aplikację z menu Start. Narzędzia CLI są uruchamiane z terminala, więc nie potrzebują pozycji w menu Start.

<uap:VisualElements
    DisplayName="YourApp"
    Description="My Application"
    BackgroundColor="transparent"
    Square150x150Logo="Assets\Square150x150Logo.png"
    Square44x44Logo="Assets\Square44x44Logo.png"
    AppListEntry="none">
</uap:VisualElements>

4.3 Dodawanie rozszerzenia aliasu wykonawczego

Aby użytkownicy mogli uruchamiać CLI po nazwie z dowolnego okna terminala, dodaj alias. Dodaj to w elemecie <Application> (po <uap:VisualElements>):

<Extensions>
  <uap5:Extension Category="windows.appExecutionAlias">
    <uap5:AppExecutionAlias>
      <uap5:ExecutionAlias Alias="yourcli.exe" />
    </uap5:AppExecutionAlias>
  </uap5:Extension>
</Extensions>

Zastąp yourcli.exe odpowiednią nazwą polecenia dla CLI. Gdy użytkownik zainstaluje plik MSIX, będzie mógł wywołać CLI za pomocą tego polecenia.

4.4 Aktualizowanie metadanych aplikacji

Zaktualizuj następujące pola, aby odpowiadały aplikacji CLI.

Ważna

Wartość Publisher w manifeście musi być zgodna z wydawcą w certyfikacie podpisu. Jeśli wygenerujesz certyfikat później (krok 5), będzie korzystał z informacji o wydawcy zawartych w manifeście. Jeśli zmienisz wydawcę po wygenerowaniu certyfikatu, musisz ponownie wygenerować certyfikat, aby był zgodny.

  • Identity: Zaktualizuj Name, Publisher i Version

    <Identity
      Name="YourCompany.YourCLI"
      Publisher="CN=Your Company"
      Version="1.0.0.0" />
    
  • Właściwości: Aktualizowanie nazwy wyświetlanej, nazwy wyświetlanej wydawcy i opisu

    <Properties>
      <DisplayName>Your CLI Tool</DisplayName>
      <PublisherDisplayName>Your Company</PublisherDisplayName>
      <Description>Description of your CLI tool</Description>
      <Logo>Assets\StoreLogo.png</Logo>
    </Properties>
    
  • VisualElements: aktualizowanie nazw wyświetlanych i odwołań do elementów zawartości

    <uap:VisualElements
      DisplayName="Your CLI Tool"
      Description="Description of your CLI tool"
      BackgroundColor="transparent"
      Square150x150Logo="Assets\Square150x150Logo.png"
      Square44x44Logo="Assets\Square44x44Logo.png">
      <uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" />
      <uap:SplashScreen Image="Assets\SplashScreen.png" />
    </uap:VisualElements>
    

Uwaga: należy również dodać odpowiednie elementy zawartości ikon do Assets folderu w katalogu pakietów. Chociaż aplikacja nie będzie wyświetlana w menu Start, ikony są nadal wymagane do przesłania do Sklepu i mogą pojawiać się w innych miejscach.

5. (Opcjonalnie) Generowanie certyfikatu programistycznego

W przypadku lokalnego testowania i dystrybucji poza Microsoft Store należy podpisać pakiet MSIX przy użyciu certyfikatu.

Generowanie certyfikatu programistycznego. Zachowaj go poza folderem interfejsu wiersza polecenia, aby uniknąć przypadkowego dołączania go do pakietu:

# Navigate to a location outside your CLI folder (e.g., your home directory)
cd ~
winapp cert generate

Spowoduje to utworzenie devcert.pfx pliku w katalogu głównym (np. C:\Users\yourname\devcert.pfx).

Aby ufać temu certyfikatowi na komputerze deweloperskim, zainstaluj go (wymaga uprawnień administratora):

# Run PowerShell as Administrator
winapp cert install ~\devcert.pfx

6. Spakuj interfejs wiersza polecenia (CLI)

Teraz możesz utworzyć pakiet MSIX:

# Navigate back outside of your project folder
# Package with dev certificate (for local testing/distribution)
winapp pack .\path\to\MyCliPackage --cert .\path\to\devcert.pfx

Spowoduje to utworzenie .msix pliku w bieżącym katalogu.

7. Instalowanie i weryfikowanie

Zainstaluj pakiet MSIX, aby sprawdzić, czy wszystko działa:

Add-AppxPackage .\MyCliPackage.msix

Jeśli w kroku 4.3 dodałeś alias do uruchomienia, możesz teraz uruchomić swój CLI z poziomu dowolnego terminalu:

yourcli --help

Aby odinstalować później:

Get-AppxPackage *YourCLI* | Remove-AppxPackage

Porady

  1. Gdy wszystko będzie gotowe do dystrybucji, możesz podpisać plik MSIX przy użyciu certyfikatu podpisywania kodu z urzędu certyfikacji, aby użytkownicy nie musieli instalować certyfikatu z podpisem własnym
  2. Microsoft Store podpisze plik MSIX bez konieczności podpisywania przed przesłaniem.
  3. Może być konieczne utworzenie wielu pakietów MSIX — po jednym dla każdej obsługiwanej architektury (x64, Arm64)

Dalsze kroki