Udostępnij przez


Tworzenie manifestu pakietu

Jeśli chcesz przesłać pakiet oprogramowania do repozytorium społeczności menedżera pakietów systemu Windows , zacznij od utworzenia manifestu pakietu. Manifest to plik YAML, który opisuje aplikację do zainstalowania.

Możesz użyć kreatora manifestu Menedżera Pakietów systemu Windows, skryptu YAMLCreate programu PowerShell, lub możesz ręcznie utworzyć manifest zgodnie z poniższymi instrukcjami.

Notatka

Zobacz poniżej Manifest FAQ, aby uzyskać więcej ogólnych informacji na temat manifestów, pakietów i wersji.

Opcje tworzenia manifestu

Korzystanie z narzędzia WinGetCreate

Narzędzie wingetcreate można zainstalować przy użyciu poniższego polecenia.

winget install wingetcreate

Po zakończeniu instalacji możesz uruchomić wingetcreate new, aby utworzyć nowy pakiet i wypełnić instrukcje. Ostatnią opcją w monitach WinGetCreate jest przesłanie manifestu do repozytorium pakietów. Jeśli wybierzesz opcję tak, automatycznie prześlesz Pull Request (PR) do repozytorium społeczności menedżera pakietów systemu Windows .

Korzystanie z YAMLCreate.ps1

Aby ułatwić tworzenie plików manifestu, udostępniliśmy skrypt programu PowerShell YAMLCreate.ps1 znajdujący się w folderze Narzędzia w repozytorium Windows Package Manager Community Repository. Skrypt można użyć, klonując repozytorium na komputerze i uruchamiając skrypt bezpośrednio z folderu Tools. Skrypt wyświetli monit o podanie adresu URL instalatora, a następnie wyświetli monit o wypełnienie metadanych. Podobnie jak przy korzystaniu z WinGetCreate, ten skrypt będzie oferował opcję automatycznego przesyłania manifestu.

Podstawy YAML

Format YAML został wybrany dla manifestów pakietów ze względu na względną łatwość czytelności ludzkiej i spójności z innymi narzędziami programistycznymi firmy Microsoft. Jeśli nie znasz składni YAML, możesz nauczyć się podstaw w Naucz się YAML w Y minut.

Notatka

Manifesty menedżera pakietów systemu Windows nie obsługują obecnie wszystkich funkcji YAML. Nieobsługiwane funkcje YAML obejmują kotwice, złożone klucze i zestawy.

Konwencje

Te konwencje są używane w tym artykule:

  • Po lewej stronie : jest dosłowne słowo kluczowe używane w definicjach manifestu.
  • Po prawej stronie : jest typ danych. Typ danych może być typem pierwotnym, takim jak ciąg lub odwołaniem do bogatej struktury zdefiniowanej w innym miejscu w tym artykule.
  • Notacja [typu danych] wskazuje tablicę wymienionego typu danych. Na przykład [ string ] jest tablicą ciągów.
  • Notacja {typ danych:typu danych} wskazuje mapowanie jednego typu danych na inny. Na przykład { string: string } to mapowanie ciągów na ciągi.

Zawartość manifestu

Manifest pakietu składa się z wymaganych elementów i opcjonalnych elementów, które mogą pomóc w ulepszaniu środowiska klienta w trakcie instalowania oprogramowania. Ta sekcja zawiera krótkie podsumowanie wymaganego schematu manifestu i kompletnych schematów manifestu z przykładami każdego z nich.

Każde pole w pliku manifestu musi być zapisywane w stylu Pascal i nie może się powtarzać.

Aby uzyskać pełną listę i opisy elementów w manifeście, zobacz specyfikację manifestu w repozytorium Windows Package Manager Community Repository.

Minimalny wymagany schemat

Zgodnie z schematem JSON typu singletonwymagane są tylko niektóre pola. Minimalny obsługiwany plik YAML będzie wyglądać podobnie do poniższego przykładu. Pojedynczy format jest prawidłowy tylko w przypadku pakietów zawierających pojedynczego instalatora i pojedyncze ustawienia regionalne. W przypadku podania więcej niż jednego instalatora lub ustawień regionalnych należy użyć wielu formatów plików YAML i schematu.

Schemat partycjonowania został dodany w celu ułatwienia środowiska użytkownika usługi GitHub. Foldery z tysiącami dzieci nie są dobrze renderowane w przeglądarce.

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).
   InstallerUrl:    # Path to download installation file.
   InstallerSha256: # SHA256 calculated from installer.
ManifestType:       # The manifest file type
ManifestVersion: 1.6.0

Wiele plików manifestu

Aby zapewnić najlepsze środowisko użytkownika, manifesty powinny zawierać jak najwięcej metadanych. Aby oddzielić obawy dotyczące sprawdzania poprawności instalatorów i udostępniania zlokalizowanych metadanych, manifesty powinny być podzielone na wiele plików. Minimalna liczba plików YAML dla tego rodzaju manifestu wynosi trzy. Należy również podać dodatkowe ustawienia regionalne.

W poniższym przykładzie przedstawiono wiele opcjonalnych pól metadanych i wielu ustawień regionalnych. Pamiętaj, że domyślne ustawienia regionalne mają więcej wymagań niż dodatkowe ustawienia regionalne. W pokaż poleceniewszystkie wymagane pola, które nie są podane dla dodatkowych lokalizacji, będą wyświetlać pola z domyślnej lokalizacji.

Ścieżka: manifesty / m / Microsoft / Windows Terminal / 1.6.10571.0 / Microsoft.WindowsTerminal.yaml

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

Notatka

Jeśli instalator jest .exe i został utworzony przy użyciu programu Nullsoft lub Inno, możesz zamiast tego określić te wartości. Po określeniu wartości Nullsoft lub Inno, klient automatycznie ustawi tryby instalacji: cichy oraz cichy z postępem dla instalatora.

Przełączniki instalatora

Często można ustalić, jakie dyskretne Switches są dostępne dla instalatora, przekazując -? instalatorowi z wiersza polecenia. Poniżej przedstawiono niektóre typowe Switches dyskretne, których można używać w przypadku różnych typów instalatora.

Instalator Polecenie Dokumentacja
MSI /q opcje Command-Line msi
InstallShield /s parametrów Command-Line InstallShield
Inno Setup /SILENT or /VERYSILENT Dokumentacja Inno Setup
Nullsoft /S Instalatory/dezinstalatory bez interfejsu użytkownika firmy Nullsoft

Porady i najlepsze rozwiązania

  • Identyfikator pakietu musi być unikatowy. Nie można mieć wielu zgłoszeń z tym samym identyfikatorem pakietu. Dozwolone jest tylko jedno żądanie ściągnięcia na wersję pakietu.
  • Unikaj tworzenia wielu folderów wydawcy. Na przykład nie twórz "Contoso Ltd.", jeśli istnieje już folder "Contoso".
  • Wszystkie narzędzia muszą obsługiwać instalację dyskretną. Jeśli masz plik wykonywalny, który nie obsługuje instalacji dyskretnej, nie możemy zapewnić tego narzędzia w tej chwili.
  • Podaj jak najwięcej pól. Im więcej metadanych dostarczysz, tym lepsze będzie doświadczenie użytkownika. W niektórych przypadkach pola mogą nie być jeszcze obsługiwane przez klienta Menedżera pakietów systemu Windows (winget.exe). Na przykład pole AppMoniker jest opcjonalne. Jeśli jednak uwzględnisz to pole, klienci zobaczą wyniki powiązane z wartością Moniker podczas wykonywania polecenia wyszukiwania (na przykład vscode dla Visual Studio Code). Jeśli istnieje tylko jedna aplikacja z określoną wartością Moniker, klienci mogą zainstalować aplikację, określając pseudonim, a nie w pełni kwalifikowany identyfikator pakietu.
  • Długość ciągów w tej specyfikacji powinna być ograniczona do 100 znaków przed złamaniem linii.
  • PackageName powinien odpowiadać wpisowi wprowadzonemu w Dodaj /Usuń programy, aby ułatwić korelację z manifestami w celu obsługi eksportowaniai uaktualniania.
  • Publisher powinien odpowiadać wpisowi wprowadzonemu w Dodaj /Usuń programy, aby ułatwić korelację z manifestami w celu obsługi eksportowaniai uaktualniania.
  • Instalatory pakietów w formacie MSI używają kodów produktów w celu unikatowego identyfikowania aplikacji. Kod produktu dla danej wersji pakietu powinien zostać uwzględniony w manifeście, aby zapewnić najlepsze doświadczenie aktualizacji.
  • Jeśli istnieje więcej niż jeden typ instalatora dla określonej wersji pakietu, wystąpienie InstallerType można umieścić pod każdym z Installers.

Manifest — często zadawane pytania

Co to jest manifest?

Manifesty to pliki YAML zawierające metadane używane przez Menedżera pakietów systemu Windows do instalowania i uaktualniania oprogramowania w systemie operacyjnym Windows. W repozytorium winget-pkgs na GitHubie znajdują się tysiące plików rozdzielonych w katalogu manifestów oznaczonym jako. Struktura katalogów Menedżera pakietów systemu Windows musiała zostać podzielona na partycje, aby nie trzeba było przewijać tyle w witrynie, gdy szukasz manifestu.

Co to jest pakiet?

Pomyśl o pakiecie jako aplikacji lub programie programowym. Menedżer pakietów systemu Windows używa elementu "PackageIdentifier" do reprezentowania unikatowego pakietu. Są one zazwyczaj w postaci Publisher.Package. Czasami mogą się pojawić dodatkowe wartości oddzielone drugą kropką.

Co to jest wersja?

Wersje pakietów są skojarzone z określoną edycją. W niektórych przypadkach zobaczysz idealnie sformułowane numery wersji semantycznych, a w innych przypadkach może być coś innego. Mogą to być elementy uzależnione od daty lub mogą mieć inne znaki z pewnym znaczeniem specyficznym dla danego pakietu. Klucz YAML dla wersji pakietu to "PackageVersion".

Aby uzyskać więcej informacji na temat rozumienia struktury katalogów i tworzenia pierwszego manifestu, zobacz Authoring Manifests w repozytorium winget-pkgs w witrynie GitHub.