Vytvořte manifest balíčku

Pokud chcete odeslat softwarový balíček do úložiště komunity Správce balíčků Systému Windows, začněte vytvořením manifestu balíčku. Manifest je soubor YAML, který popisuje aplikaci, která se má nainstalovat.

Můžete buď použít nástroj pro vytváření manifestů Správce balíčků systému Windows , skript PowerShell YAMLCreate , nebo můžete manifest vytvořit ručně podle následujících pokynů.

Poznámka:

Další obecné informace o manifestu, které vysvětlují manifesty, balíčky a verze, najdete v nejčastějších dotazech níže.

Možnosti pro vytvoření manifestu

Použití nástroje WinGetCreate

Pomocí následujícího příkazu můžete nainstalovat nástroj wingetcreate.

winget install wingetcreate

Po instalaci můžete spustit wingetcreate new , abyste vytvořili nový balíček a vyplnili výzvy. Poslední možností v výzev WinGetCreate je odeslat manifest do úložiště balíčků. Pokud zvolíte ano, automaticky odešlete Pull Request (PR), což je žádost o přijetí změn, do úložiště komunity Windows Správce balíčků .

Použití YAMLCreate.ps1

Abychom pomohli s vytvářením souborů manifestu, poskytli jsme skript PowerShell YAMLCreate.ps1 umístěný ve složce Nástroje v komunitním úložišti Windows Správce balíčků . Skript můžete použít naklonováním úložiště na počítači a spuštěním skriptu přímo ze složky Nástroje . Skript vás vyzve k zadání adresy URL instalačnímu programu a zobrazí výzvu k vyplnění metadat. Podobně jako při použití WinGetCreate tento skript nabídne možnost automatického odeslání manifestu.

Základy YAML

Formát YAML byl vybrán pro manifesty balíčků z důvodu relativní jednoduchosti čitelnosti a konzistence s jinými vývojářskými nástroji Microsoftu. Pokud syntaxi YAML neznáte, můžete se naučit základy Learn YAML vY Minutes .

Poznámka:

Manifesty pro Správce balíčků systému Windows v současné době nepodporují všechny funkce YAML. Nepodporované funkce YAML zahrnují kotvy, složité klíče a sady.

Konvence

Tyto konvence se používají v tomto článku:

  • Vlevo od : je doslovné klíčové slovo použité v definicích manifestu.
  • Napravo od : je datový typ. Datový typ může být primitivním typem, jako je řetězec nebo odkaz na bohatou strukturu definovanou jinde v tomto článku.
  • [ notace ] označuje pole zmíněného datového typu. Jedná se například [ string ] o pole řetězců.
  • Zápis {datový typ:datový typ} označuje mapování jednoho datového typu na jiný. Například { string: string } je mapování řetězců na řetězce.

Obsah manifestu

Manifest balíčku se skládá z požadovaných položek a volitelných položek, které můžou pomoct zlepšit prostředí zákazníka při instalaci softwaru. Tato část obsahuje stručný souhrn požadovaného schématu manifestu a kompletní schémata manifestu s příklady každého z nich.

Všechna pole v souboru manifestu musí být ve formátu PascalCase a nelze je duplikovat.

Úplný seznam a popisy položek v manifestu naleznete v specifikace manifestu v úložiště správce balíčků systému Windows.

Minimální požadované schéma

Jak je uvedeno ve schématu JSON singleton, jsou vyžadována pouze určitá pole. Minimální podporovaný soubor YAML by vypadal jako v následujícím příkladu. Formát singletonu je platný pouze pro balíčky obsahující jeden instalační program a jedno národní prostředí. Pokud je k dispozici více než jeden instalační program nebo národní prostředí, musí se použít více formátů souborů YAML a schématu.

Schéma dělení bylo přidáno, aby pomohlo uživatelskému prostředí GitHubu. Složky s tisíci podadresářů se v prohlížeči nevykreslují dobře.

PackageIdentifier:  # Publisher.package format.
PackageVersion:     # Version numbering format.
PackageLocale:      # BCP 47 format (e.g. en-US)
Publisher:          # The name of the publisher.
PackageName:        # The name of the application.
License:            # The license of the application.
ShortDescription:   # The description of the application.
Installers: 
 - Architecture:    # Enumeration of supported architectures.
   InstallerType:   # Enumeration of supported installer types (exe, msi, msix, inno, wix, nullsoft, appx, font).
   InstallerUrl:    # Path to download installation file.
   InstallerSha256: # SHA256 calculated from installer.
ManifestType:       # The manifest file type
ManifestVersion: 1.12.0

Více souborů manifestu

Aby bylo možné zajistit co nejlepší uživatelské prostředí, manifesty by měly obsahovat co nejvíce meta-dat. Aby bylo možné oddělit obavy týkající se ověřování instalačních programů a poskytování lokalizovaných metadat, měly by se manifesty rozdělit do více souborů. Minimální počet souborů YAML pro tento druh manifestu je tři. Měla by se také poskytnout další jazyková nastavení.

Následující příklad ukazuje mnoho volitelných polí metadat a více národních prostředí. Všimněte si, že výchozí národní prostředí má více požadavků než další národní prostředí. Ve příkazu zobrazení se budou pole požadovaná pro další národní prostředí, která nejsou poskytnuta, zobrazovat z výchozího nastavení.

Cesta: manifesty / m / Microsoft / WindowsTerminal / 1.6.10571.0 / Microsoft.WindowsTerminal.yaml

PackageIdentifier: "Microsoft.WindowsTerminal"
PackageVersion: "1.6.10571.0"
DefaultLocale: "en-US"
ManifestType: "version"
ManifestVersion: "1.12.0"

Poznámka:

Pokud je instalační program .exe a byl vytvořen pomocí nullsoft nebo Inno, můžete místo toho zadat tyto hodnoty. Pokud jsou specifikovány možnosti Nullsoft nebo Inno, klient automaticky nastaví tiché chování instalace a chování instalace s indikátorem průběhu pro instalační program.

Instalační přepínače

Často můžete zjistit, jaké tiché parametry Switches jsou k dispozici pro instalační program, když instalačnímu programu předáte -? z příkazového řádku. Tady je několik běžných tichých Switches, které lze použít pro různé typy instalačního programu.

Instalátor Příkaz Dokumentace
MSI /q MSI Command-Line možnosti
InstallShield /s parametrů InstallShield Command-Line
Inno Setup /SILENT or /VERYSILENT Dokumentace k Inno Setup
Nullsoft /S Nullsoft bezobslužné instalační/odinstalační programy

Tipy a osvědčené postupy

  • Identifikátor balíčku musí být jedinečný. Nemůžete mít více odeslání se stejným identifikátorem balíčku. Je povolen pouze jeden pull request pro každou verzi balíčku.
  • Vyhněte se vytváření více složek vydavatele. Například nevytvořte "Contoso Ltd", pokud už existuje složka Contoso.
  • Všechny nástroje musí podporovat tichou instalaci. Pokud máte spustitelný soubor, který nepodporuje tichou instalaci, nemůžeme tento nástroj v tuto chvíli poskytnout.
  • Zadejte co nejvíce polí. Čím více meta-dat poskytnete, tím lepší bude uživatelská zkušenost. V některých případech klient Správce balíčků systému Windows (winget.exe) tato pole ještě nemusí podporovat. Například je pole AppMoniker volitelné. Pokud však toto pole zahrnete, zákazníci uvidí výsledky spojené s hodnotou při zadání hledaného výrazu pomocí příkazu (například vscode pro Visual Studio Code). Pokud existuje pouze jedna aplikace se zadanou Moniker hodnotou, zákazníci mohou aplikaci nainstalovat tak, že místo plně kvalifikovaného identifikátoru balíčku určí moniker.
  • Délka řetězců v této specifikaci by měla být omezena na 100 znaků před koncem řádku.
  • PackageName by se měl shodovat s položkou v Přidat nebo odebrat programy, aby pomohlo korelovat s manifesty a podpořit exporta upgrade.
  • Publisher by se měl shodovat s položkou v Přidat nebo odebrat programy, aby pomohlo korelovat s manifesty a podpořit exporta upgrade.
  • Instalační programy balíčků ve formátu MSI používají kódy produktů k jednoznačné identifikaci aplikací. Kód produktu pro danou verzi balíčku by měl být součástí manifestu, aby se zajistil nejlepší upgrade zážitek.
  • Pokud pro zadanou verzi balíčku existuje více než jeden typ instalačního programu, může být instance InstallerType umístěna Installerspod každou z nich .

Nejčastější dotazy k manifestu

Co je manifest?

Manifesty jsou soubory YAML obsahující metadata používaná Správcem balíčků systému Windows k instalaci a upgradu softwaru v operačním systému Windows. V úložišti winget-pkgs na GitHubu jsou tisíce těchto souborů rozdělené do adresáře manifestů. Adresářová struktura Správce balíčků systému Windows musela být rozdělena na oddíly, takže při hledání manifestu nemusíte posouvat tolik místa na webu.

Co je balíček?

Balíček si můžete představit jako aplikaci nebo softwarový program. Správce balíčků systému Windows používá "PackageIdentifier" k reprezentaci jedinečného balíčku. To jsou obecně ve formě Publisher.Package. Někdy se můžou zobrazit další hodnoty oddělené druhou tečkou.

Co je verze?

Verze balíčků jsou přidružené ke konkrétní verzi. V některých případech uvidíte dokonale vytvořená sémantická čísla verzí a v jiných případech se může zobrazit něco jiného. Tyto znaky můžou být řízené datem nebo můžou mít jiné znaky s určitým významem specifického pro balíček. Klíč YAML pro verzi balíčku je PackageVersion.

Další informace o porozumění adresářové struktuře a vytvoření prvního manifestu najdete v tématu Vytváření manifestů v úložišti winget-pkgs na GitHubu.