Assets/schema.json
# Id is a required field. It MUST include the publisher name and application name separated by a period.
# The Id convention and folder convention MUST match. Therefore all entries MUST look like this: # ID: PublisherName.ApplicationName # and the folder structure PublisherName\ApplicationName\ApplicationName-Version.YAML # Restrictions: No white spaces allowed. [min: 4, max:255] Id: microsoft.msixsdk # Name is a required field. It should be the friendly name of the application. # Restrictions: [min: 1, max:128] Name: MSIX SDK # AppMoniker is the common name someone may use to search for the application. # Restrictions: No white spaces allowed. [min: 1, max:40] AppMoniker: msixsdk # Version is a required field. It is the specific version of this copy of the application. # Versions should be separated by a period, but we will support other delimiters. # Versions should be limited to four fields: Major.Minor.Build.Update. # Versions will be sorted as integers following the following pattern: Major.Minor.Build.Patch. # Restrictions: 4 sections with max value of 65535. For example:65535.65535.65535.65535 Version: 1.7.32 # Publisher is a required field. It should be the legal company name. # Restrictions: [min: 1, max:128] Publisher: Microsoft # Channel a string representing the flight ring. For example: stable, beta, canary. # By default searches will not expose results with the channel specified. # Restrictions: [min: 1, max:40] Channel: Prerelease # The person or company responsible for authoring the tool. # Restrictions: [min: 1, max:40] Author: Microsoft # License is a required field. License provides the type of license the application is provided under. # For example: BSD, MIT, Apache, Microsoft Public License, commercial # Restrictions: [min: 1, max:40] License: MIT License # LicenseURL provides a link to the license for the user to read. # Restrictions: The LicenseUrl must be a valid secure URL, for example beginning with https and # followed by a hostname. [min: 10, max:2000] LicenseUrl: https://github.com/microsoft/msix-packaging/blob/master/LICENSE # MinOSVersion uses the Windows version to limit installations on unsupported platforms. # For example specifying 10.0.18362.0 will only allows this tool to be installed on Windows build 1903 or greater. # Restrictions: must follow Windows versioning model. 4 sections with max value of 65535. For example:65535.65535.65535.65535 MinOSVersion: 10.0.0.0 # Description should be friendly providing insights into the value of the tool. # Restrictions: [min: 1, max:500] Description: The MSIX SDK project is an effort to enable developers on a variety of platforms to pack and unpack packages for the purposes of distribution from either the Microsoft Store, or their own content distribution networks. # Homepage is a URL where the user can find more information on the tool. # Restrictions: The Homepage must be a valid secure URL, for example beginning with https and # followed by a hostname. [min: 10, max:2000] Homepage: https://github.com/microsoft/msix-packaging # Tags are comma separated list. They represent strings that the user may use to search for a given tool. # Restrictions: [min: 1, max:40] Tags: "msix, appx" # FileExtensions is a comma separated list. FileExtensions provides the list of extensions the application could support. # FileExtensions are not supported in this preview (5/24/2020) # Restrictions: [min: 1, max:40] FileExtensions: "docx, doc" # Protocols is a comma separated list. Protocols provides the list of protocols the application provides a handler for. # Protocols are not supported in this preview (5/24/2020) # Restrictions: [min: 1, max:40] Protocols: "ms-winget" # Commands are the common executable or alias that the user might type trying to run the application. # For example "code" for VSCode. If multiple commands are supported, the commands must be separated by a comma. # Restrictions: [min: 1, max:40] Commands: "code" # InstallerType is a required field. Supported types are inno, wix, msi, nullsoft, zip, appx, msix and exe. # The winget command tool uses this value to assist in installing this application. # If the value is an exe, you will need to provide the quiet switches. # zip is not supported in this preview (5/24/2020) # Restrictions: [min: 1, max:40] InstallerType: msix # winget by default specifies silent or quiet mode to the installers. The following additional # switches can be used to change the install behavior if supported by the InstallerType. # When scripting, custom switches may also be passed on the command line to winget. # The following switches are supported: Custom, Silent, SilentWithProgress, Interactive, Language, Log and InstallLocation. Switches: # Custom switches will be passed directly to the installer by winget. # Restrictions: [min: 1, max:128] Custom: MyCustomString # During any installation, only one of the next three switches [Silent, SilentWithProgress, Interactive] will be passed to the # installer when provided by the user. # Silent represents the value that should be passed to the installer when the user chooses a silent or quiet install. # For example, some installers support "/s". # Restrictions: [min: 1, max:40] Silent: /s # SilentWithProgress represents the value that should be passed to the installer when the user chooses to install a non-interactive install. # For example, some installers support "passive". SilentWithProgress: passive # Interactive represents the value that should be passed to the installer when the tool requires user interaction. If the installer has a flag # that when passed to the installer, causes it to require user input, it should be provided here. This flag will be used when the user passes the # --interactive switch to the installer. # Interactive is not supported in this preview (5/24/2020) Interactive: /ShowEula # Some installers include all localized resources. By specifying a Language switch, winget will pass the value of language to the installer, # when the installer is called. # Language is not supported in this preview (5/24/2020) Language: en-US # Installers often write logging files. A user may want to redirect the log to a different location. In order to redirect the log file, the user will # pass in a log file path to the installer. For example: --log "%temp%\mylog.txt". The file will be saved as a token in the client: <LOGPATH>. Therefore, # if the installer supports log redirection, then the Log switch should be the flag that the installer expects to provide the path to the log # file. For example: /LOG=<LOGPATH>. # Log must include the <LOGPATH> token. Log: /LOG=<LOGPATH> # Some installers allow for installing to an alternate location. A user may want to redirect the default install to a different location. # In order to redirect the install location, the user will pass in a installation path to the installer. For example: --installlocation "c:\mytool". # The folder path will be saved as a token in the client: <INSTALLPATH>. Therefore, if the installer supports install location redirection, # then the InstallLocation switch must be the flag that the installer expects to redirect the installation path. # For example: /InstallLocation=<INSTALLPATH>. # InstallLocation must include the <INSTALLPATH> token. InstallLocation: /DIR=<INSTALLPATH> # ======================= Installers ================== # Installers represents the collection of entries that define the actual installer. The installer provides the architecture, url and hash that # ensure that the installer has not been tampered with. Installers: # Arch is a required field. Arch is the architecture of the tool, and is a required field to ensure that the tool will install correctly. # Supported values: arm, arm64, x86, x64 and neutral - Arch: x86 # Url is a required field. This provides the path to the installer. # The Url must begin with https:// and followed by a hostname. # Restrictions: [min: 10, max:2000] Url: https://contosa.net/publiccontainer/contosainstaller.exe # Sha256 is a required field. The value is the hash of the installer and used to verify the executable # Restrictions: [valid sha256 hash] Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82 # SignatureSha256 is a recommended field for MSIX files only. The value is the signature file's hash of the MSIX file. # By providing the SignatureSha256, you can improve the installation performance of the application. # The SignatureSha256 can be found by typing winget create hash -msix <MSIX file>. For more details see: # https://github.com/microsoft/winget-cli/docs/create.md # Restrictions: [valid sha256 hash] SignatureSha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C82 # Language is the specific language of the installer. If no language is specified, the installer will display for all users. # Language must follow IETF language tag guidelines. # Language is not supported in this preview (5/24/2020) Language: en-US # InstallerType is a required field if not defined at the root. Unless specified, the InstallerType will be assumed to be the same InstallerType as the root. # See further restrictions on InstallerType earlier in this document. InstallerType: msix # Scope indicates if the installer is per user or per machine. # Supported values: user and machine # Unless specified, user is the default. # Scope is not supported in this preview (5/24/2020) Scope: user # ProductCode will be used in upgrade scenarios and to locate the uninstall string to uninstall the application. # For MSI there is an explicit product code. Typically a GUID that is typically found in the uninstall registry location and includes the brackets. # For example: {5740BD44-B58D-321A-AFC0-6D3D4556DD6C} # [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{3740BD44-B58D-321A-AFC0-6D3D4556DD6C}] # [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{3740BD44-B58D-321A-AFC0-6D3D4556DD6C}] # For inno, wix, nullsoft, and exe, the ProductCode should be a string that is located in either of the Uninstall keys above. ProductCode: "{05321FDB-BBA2-497D-99C6-C440E184C043}" # PackageFamilyName will be used in upgrade scenarios and to locate the uninstall string to uninstall the application. # MSIX installers have an explicit PackageFamilyName. For example: Contoso.Toolbox.Finance_7wekyb3d8bbwe # Restrictions: [min: 3, max:128] PackageFamilyName: Microsoft.WindowsTerminal_8wekyb3d8bbwe # Switches in installers can override the root specified switches. See definition earlier in this document. Switches: Language: /en-US Custom: /s # This is an example of an additional installer. # See further restrictions earlier in this document. # Support for multiple installers are not supported in this preview (5/24/2020) - Arch: x64 Url: https://contosa.net/publiccontainer/contosainstaller64.exe Sha256: 69D84CA8899800A5575CE31798293CD4FEBAB1D734A07C2E51E56A28E0DF8C83 Language: en-US Scope: user # Localized values will provide links and text to match the users settings. For example the following links and text will be displayed instead. Localization: - Language: es-MX Description: Text to display for es-MX Homepage: https://github.com/microsoft/msix-packaging/es-MX LicenseUrl: https://github.com/microsoft/msix-packaging/blob/master/LICENSE-es-MX # ManifestVersion: 0.1.0 # ManifestVersion is a required field. ManifestVersion will allow the client to detect updated manifests and treat it differently. |