pub struct InstallerManifest {Show 41 fields
pub package_identifier: PackageIdentifier,
pub package_version: PackageVersion,
pub channel: Option<Channel>,
pub locale: Option<LanguageTag>,
pub platform: Platform,
pub minimum_os_version: Option<MinimumOSVersion>,
pub type: Option<InstallerType>,
pub nested_installer_type: Option<NestedInstallerType>,
pub nested_installer_files: BTreeSet<NestedInstallerFiles>,
pub scope: Option<Scope>,
pub install_modes: InstallModes,
pub switches: InstallerSwitches,
pub success_codes: BTreeSet<InstallerSuccessCode>,
pub expected_return_codes: BTreeSet<ExpectedReturnCodes>,
pub upgrade_behavior: Option<UpgradeBehavior>,
pub commands: BTreeSet<Command>,
pub protocols: BTreeSet<Protocol>,
pub file_extensions: BTreeSet<FileExtension>,
pub dependencies: Dependencies,
pub package_family_name: Option<PackageFamilyName<'static>>,
pub product_code: Option<String>,
pub capabilities: BTreeSet<Capability>,
pub restricted_capabilities: BTreeSet<RestrictedCapability>,
pub markets: Option<Markets>,
pub aborts_terminal: bool,
pub release_date: Option<CompactString>,
pub install_location_required: bool,
pub require_explicit_upgrade: bool,
pub display_install_warnings: bool,
pub unsupported_os_architectures: UnsupportedOSArchitecture,
pub unsupported_arguments: UnsupportedArguments,
pub apps_and_features_entries: AppsAndFeaturesEntries,
pub elevation_requirement: Option<ElevationRequirement>,
pub installation_metadata: InstallationMetadata,
pub download_command_prohibited: bool,
pub repair_behavior: Option<RepairBehavior>,
pub archive_binaries_depend_on_path: bool,
pub authentication: Option<Authentication>,
pub installers: Vec<Installer>,
pub manifest_type: ManifestType,
pub manifest_version: ManifestVersion,
}Fields§
§package_identifier: PackageIdentifierThe unique identifier for a given package.
This value is generally in the form of Publisher.Package. It is case-sensitive, and this
value must match the folder structure under the partition directory in GitHub.
package_version: PackageVersionThe version of the package.
It is related to the specific release this manifests targets. In some cases you will see a perfectly formed semantic version number, and in other cases you might see something different. These may be date driven, or they might have other characters with some package specific meaning for example.
The Windows Package Manager client uses this version to determine if an upgrade for a
package is available. In some cases, packages may be released with a marketing driven
version, and that causes trouble with the winget upgrade command.
The current best practice is to use the value reported in Add / Remove Programs when this version of the package is installed. In some cases, packages do not report a version resulting in an upgrade loop or other unwanted behavior.
channel: Option<Channel>The distribution channel for a package.
Examples may include “stable” or “beta”.
locale: Option<LanguageTag>The locale for an installer not the package meta-data.
Some installers are compiled with locale or language specific properties. If this key is present, it is used to represent the package locale for an installer.
platform: PlatformThe Windows platform targeted by the installer.
The Windows Package Manager currently supports “Windows.Desktop” and “Windows.Universal”.
minimum_os_version: Option<MinimumOSVersion>The minimum version of the Windows operating system supported by the package.
type: Option<InstallerType>The installer type for the package.
The Windows Package Manager supports MSIX, MSI, and executable installers. Some well known formats (Inno, Nullsoft, WiX, and Burn) provide standard sets of installer switches to provide different installer experiences. Portable packages are supported as of Windows Package Manager 1.3. Zip packages are supported as of Windows Package Manager 1.5.
nested_installer_type: Option<NestedInstallerType>The installer type of the file within the archive which will be used as the installer.
nested_installer_files: BTreeSet<NestedInstallerFiles>A list of all the installers to be executed within an archive.
scope: Option<Scope>The scope the package is installed under.
The two configurations are user and machine. Some installers support only one of
these scopes while others support both via arguments passed to the installer using
InstallerSwitches.
install_modes: InstallModesThe install modes supported by the installer.
The Microsoft community package repository requires a package support “silent” and “silent with progress”. The Windows Package Manager also supports “interactive” installers.
switches: InstallerSwitchesThe set of switches passed to installers.
success_codes: BTreeSet<InstallerSuccessCode>Any status codes returned by the installer representing a success condition other than zero.
expected_return_codes: BTreeSet<ExpectedReturnCodes>Any status codes returned by the installer representing a condition other than zero.
upgrade_behavior: Option<UpgradeBehavior>What the Windows Package Manager should do regarding the currently installed package during a package upgrade.
If the package should be uninstalled first, the uninstallPrevious value should be
specified. If the package should not be upgraded through WinGet, the deny value should
be specified.
commands: BTreeSet<Command>Any commands or aliases used to execute the package after it has been installed.
protocols: BTreeSet<Protocol>Any protocols (i.e. URI schemes) supported by the package. For example: ["ftp", "ldap"].
Entries shouldn’t have trailing colons. The Windows Package Manager does not support any
behavior related to protocols handled by a package.
file_extensions: BTreeSet<FileExtension>Any file extensions supported by the package.
For example: ["html", "jpg"]. Entries shouldn’t have leading dots. The Windows Package
Manager does not support any behavior related to the file extensions supported by the
package.
dependencies: DependenciesAny dependencies required to install or run the package.
package_family_name: Option<PackageFamilyName<'static>>The package family name specified in an MSIX installer.
This value is used to assist with matching packages from a source to the program installed in Windows via Add / Remove Programs for list, and upgrade behavior.
product_code: Option<String>The product code.
This value is used to assist with matching packages from a source to the program installed in Windows via Add / Remove Programs for list, and upgrade behavior.
capabilities: BTreeSet<Capability>The capabilities provided by an MSIX package.
More information is available for App capability declarations.
restricted_capabilities: BTreeSet<RestrictedCapability>The restricted capabilities provided by an MSIX package.
More information is available for App capability declarations.
markets: Option<Markets>Any markets a package may or may not be installed in.
aborts_terminal: boolThe behavior associated with installers that abort the terminal.
This most often occurs when a user is performing an upgrade of the running terminal.
release_date: Option<CompactString>The release date for a package, in RFC 3339 / ISO 8601 format, i.e. “YYYY-MM-DD”.
install_location_required: boolThe requirement to have an install location specified.
These installers are known to deploy files to the location the installer is executed in.
require_explicit_upgrade: boolIdentifies packages that upgrade themselves.
By default, they are excluded from winget upgrade --all.
display_install_warnings: boolWhether a warning message is displayed to the user prior to install or upgrade if the package is known to interfere with any running applications.
unsupported_os_architectures: UnsupportedOSArchitectureAny architectures a package is known not to be compatible with.
Generally, this is associated with emulation modes.
unsupported_arguments: UnsupportedArgumentsThe list of Windows Package Manager Client arguments the installer does not support.
Only the --log and --location arguments can be specified as unsupported arguments for an
installer.
apps_and_features_entries: AppsAndFeaturesEntriesThe values reported by Windows Apps & Features.
When a package is installed, entries are made into the Windows Registry.
elevation_requirement: Option<ElevationRequirement>The scope in which scope a package is required to be executed under.
Some packages require user level execution while others require administrative level execution.
installation_metadata: InstallationMetadataAllows for additional metadata to be used for deeper installation detection.
download_command_prohibited: boolWhen true, this flag will prohibit the manifest from being downloaded for offline installation with the winget download command.
repair_behavior: Option<RepairBehavior>This field controls what method is used to repair existing installations of packages.
Specifying modify will use the ModifyPath string from the package’s ARP data,
uninstaller will use the Uninstall string from the package’s ARP data, and installer
will download and run the installer. In each case, the Repair value from
InstallerSwitches will be added as an argument when invoking the command to repair the
package.
archive_binaries_depend_on_path: boolThis field controls the behavior of environment variables when installing portable packages
from an archive (i.e. zip).
Specifying true will add the install location directly to the PATH environment variable.
Specifying false will use the default behavior of adding a symlink to the links folder,
if supported, or adding the install location directly to PATH if symlinks are not
supported.
authentication: Option<Authentication>§installers: Vec<Installer>§manifest_type: ManifestTypeThe manifest type.
Must have the value installer. The Microsoft community package repository validation
pipelines also use this value to determine appropriate validation rules when evaluating this
file.
manifest_version: ManifestVersionThe manifest syntax version.
Must have the value 1.10.0. The Microsoft community package repository validation
pipelines also use this value to determine appropriate validation rules when evaluating this
file.
Implementations§
Trait Implementations§
Source§impl Clone for InstallerManifest
impl Clone for InstallerManifest
Source§fn clone(&self) -> InstallerManifest
fn clone(&self) -> InstallerManifest
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for InstallerManifest
impl Debug for InstallerManifest
Source§impl Default for InstallerManifest
impl Default for InstallerManifest
Source§fn default() -> InstallerManifest
fn default() -> InstallerManifest
Source§impl Hash for InstallerManifest
impl Hash for InstallerManifest
Source§impl Manifest for InstallerManifest
impl Manifest for InstallerManifest
Source§impl Ord for InstallerManifest
impl Ord for InstallerManifest
Source§fn cmp(&self, other: &InstallerManifest) -> Ordering
fn cmp(&self, other: &InstallerManifest) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for InstallerManifest
impl PartialEq for InstallerManifest
Source§impl PartialOrd for InstallerManifest
impl PartialOrd for InstallerManifest
impl Eq for InstallerManifest
impl StructuralPartialEq for InstallerManifest
Auto Trait Implementations§
impl Freeze for InstallerManifest
impl RefUnwindSafe for InstallerManifest
impl Send for InstallerManifest
impl Sync for InstallerManifest
impl Unpin for InstallerManifest
impl UnwindSafe for InstallerManifest
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more