Zabalení spustitelného souboru příkazového řádku (CLI) jako MSIX

Tato příručka vás provede zabalením existujícího spustitelného souboru příkazového řádku jako balíčku MSIX pro distribuci prostřednictvím windows Správce balíčků (winget), Microsoft Storu nebo přímé distribuce.

Předpoklady

  • Existující spustitelný soubor rozhraní příkazového řádku (.exe), který chcete zabalit
  • Windows 10 verze 1809 nebo novější

Kroky

1. Uspořádání aplikace rozhraní příkazového řádku

Umístěte spustitelný soubor rozhraní příkazového řádku a všechny závislosti do vyhrazené složky. Tato složka bude obsahovat všechny soubory, které by měly být součástí balíčku MSIX.

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

2. Instalace rozhraní příkazového řádku winapp

Pokud ho už máte, nainstalujte rozhraní příkazového řádku winapp prostřednictvím Windows Správce balíčků nebo aktualizujte na nejnovější verzi:

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

3. Vygenerujte soubor Package.appxmanifest

Generujte základní Package.appxmanifest a požadované prostředky pro CLI spustitelný soubor:

winapp manifest generate --executable .\yourcli.exe

Tento příkaz vytvoří Package.appxmanifest soubor v aktuálním adresáři s výchozími hodnotami naplněnými z vašeho spustitelného souboru.

4. Konfigurace manifestu

Upravte vygenerovaný Package.appxmanifest pro přizpůsobení balíčku. Každý dílčí krok níže vysvětluje, co se má změnit a proč.

4.1 Přidání požadovaného oboru názvů

uap5 Přidejte obor názvů do elementu Package, pokud již není přítomen. To je potřeba pro alias pro spouštění v 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 Konfigurace elementu aplikace

V elementu <uap:VisualElements> přidejte AppListEntry="none" , aby se aplikace skrývala v nabídce Start. CLI nástroje se spouštějí z terminálu, takže nepotřebují položku v nabídce Start.

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

4.3 Přidání rozšíření spouštěcího aliasu

Přidejte alias pro spuštění, aby uživatelé mohli spustit vaše CLI podle jména z jakéhokoliv terminálového okna. Přidejte ho do elementu <Application> (za <uap:VisualElements>):

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

Nahraďte yourcli.exe požadovaným názvem příkazu pro rozhraní příkazového řádku. Jakmile uživatel nainstaluje MSIX, bude moct pomocí tohoto příkazu vyvolat rozhraní příkazového řádku.

4.4 Aktualizace metadat aplikace

Aktualizujte následující pole tak, aby odpovídala vaší aplikaci rozhraní příkazového řádku.

Důležité

Hodnota Publisher v manifestu musí odpovídat vydavateli v podpisovém certifikátu. Pokud certifikát vygenerujete později (krok 5), použije vydavatele z manifestu. Pokud změníte vydavatele po vygenerování certifikátu, budete muset certifikát znovu vygenerovat, aby se shodovaly.

  • Identity: Aktualizace Name, Publisher a Version

    <Identity
      Name="YourCompany.YourCLI"
      Publisher="CN=Your Company"
      Version="1.0.0.0" />
    
  • Vlastnosti: Aktualizace zobrazovaného názvu, názvu vydavatele a popisu

    <Properties>
      <DisplayName>Your CLI Tool</DisplayName>
      <PublisherDisplayName>Your Company</PublisherDisplayName>
      <Description>Description of your CLI tool</Description>
      <Logo>Assets\StoreLogo.png</Logo>
    </Properties>
    
  • VisualElements: Aktualizace zobrazovaných názvů a odkazů na prostředky

    <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>
    

Poznámka: Do složky v adresáři balíčku byste také měli přidat správné soubory ikon. I když se aplikace nezobrazí v nabídce Start, ikony se stále vyžadují pro odeslání ze Storu a můžou se zobrazovat v jiných kontextech.

5. (Volitelné) Vygenerování vývojového certifikátu

Pro místní testování a distribuci mimo Microsoft Store budete muset balíček MSIX podepsat certifikátem.

Vygenerujte vývojový certifikát. Nechejte ji mimo složku rozhraní příkazového řádku, abyste se vyhnuli náhodnému zahrnutí do balíčku:

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

Tím se vytvoří soubor ve vašem domovském devcert.pfx adresáři (např C:\Users\yourname\devcert.pfx. ).

Pokud chcete důvěřovat tomuto certifikátu na vývojovém počítači, nainstalujte ho (vyžaduje oprávnění správce):

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

6. Zabalte rozhraní příkazového řádku

Teď jste připraveni vytvořit balíček 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

Tím se vytvoří .msix soubor v aktuálním adresáři.

7. Instalace a ověření

Nainstalujte balíček MSIX, abyste ověřili, že všechno funguje:

Add-AppxPackage .\MyCliPackage.msix

Pokud jste přidali alias spuštění v kroku 4.3, můžete teď rozhraní příkazového řádku spustit z libovolného terminálu:

yourcli --help

Postup odinstalace později:

Get-AppxPackage *YourCLI* | Remove-AppxPackage

Tips

  1. Jakmile budete připraveni k distribuci, můžete MSIX podepsat certifikátem pro podepisování kódu od certifikační autority, aby uživatelé nemuseli instalovat samopodepsaný certifikát.
  2. Microsoft Store za vás podepíše MSIX, před odesláním se nemusíte podepisovat.
  3. Možná budete muset vytvořit několik balíčků MSIX, jeden pro každou architekturu, kterou podporujete (x64, Arm64).

Další kroky