Table of Contents

Namespace ZeroInstall.Model

Data model for the Zero Install feed format.

NuGet package: ZeroInstall.Model

Namespaces

ZeroInstall.Model.Capabilities

Extends the feed format with structures for describing application capabilities. This forms the basis for desktop integration.

ZeroInstall.Model.Design

TypeConverters used for serialization and to provide a better runtime experience when using PropertyGrids.

ZeroInstall.Model.Preferences

Structures for user-specified preferences and overrides for interfaces, feeds and implementations.

ZeroInstall.Model.Selection

Structures for representing Solver results.

Classes

ArchitectureExtensions

Contains extension methods for Architecture, OS and Cpu.

Archive

Retrieves an implementation by downloading and extracting an archive.

Arg

A single command-line arguments to be passed to an executable.

ArgBase

Common base class for Arg and ForEachArgs.

Binding

Bindings specify how the chosen implementation is made known to the running program.

Catalog

Contains a list of Feeds, reduced to only contain information relevant for overview lists.

Category

An application category (e.g. Game or Office). Used for organizing application menus.

Command

A command says how to run an Implementation as a program.

Constraint

Restricts the set of versions from which the injector may choose an Implementation.

CopyFromStep

Copies files or directories from another implementation specified elsewhere in the same feed.

Dependency

A reference to an interface that is required as dependency.

DependencyContainerExtensions

Provides extension methods for IDependencyContainer.

DownloadRetrievalMethod

Represents a retrieval method that downloads data from the net.

Element

Abstract base class for ImplementationBase and Group. Contains those parameters that can be transferred from a Group to an Implementation.

ElementCollectionExtensions

Provides extension methods for Element collections.

EntryPoint

Associates a Command with a user-friendly name and description.

EnvironmentBinding

Make a chosen Implementation available by setting environment variables.

ExecutableInBinding

Make a chosen Implementation available as an executable at runtime.

ExecutableInPath

Make a chosen Implementation available as an executable in the search PATH.

ExecutableInVar

Make a chosen Implementation available as an executable path in an environment variable.

Feed

A feed contains all the information required to download and execute an application.

FeedElement

Abstract base class for XML serializable classes that are part of the Zero Install feed model.

FeedReference

A linked feed that contains more implementations of this interface. Is treated by the solver as if it were part of the main feed.

FeedUri

Represents a feed or interface URI or local path. Unlike Uri this class only accepts HTTP(S) URLs and absolute local paths.

ForEachArgs

Expands an environment variable to multiple arguments. The variable specified in ItemFrom is split using Separator and the Arguments are added once for each item.

GenericBinding

Zero Install will not know how to run a program using generic bindings itself, but it will include them in any selections documents it creates, which can then be executed by your custom code.

Group

All attributes of a group are inherited by any child Groups and Implementations as defaults, but can be overridden there. All Dependencys and Bindings are inherited (sub-groups may add more Dependencys and Bindings to the list, but cannot remove any).

Icon

An icon representing the application. Used in the Catalog GUI as well as for desktop icons, menu entries, etc..

IconExtensions

Provides extensions methods related to Icons.

Implementation

An implementation is a specific version of an application that can be downloaded and executed (e.g. Firefox 3.6 for Windows).

ImplementationBase

Information for identifying an implementation of a Feed. Common base for Implementation and ImplementationSelection.

ImplementationVersion

Represents a version number consisting of dot-separated decimals and optional modifier strings.

InterfaceReference

A reference to an interface URI, e.g. for specifying which interface this feed implements or by which interface it is replaced.

ManifestDigestPartialEqualityComparer

Uses PartialEquals(ManifestDigest) to compare ManifestDigests.

ManifestDigestPartialEqualityComparer<T>

Uses PartialEquals(ManifestDigest) to compare ImplementationBases.

ModelUtils

Provides utility methods for interface and feed URIs.

OverlayBinding

Make a chosen Implementation available by overlaying it onto another part of the file-system.

PackageImplementation

An implementation provided by a distribution-specific package manager instead of Zero Install.

Recipe

Retrieves an implementation by applying a list of IRecipeSteps, such as downloading and combining multiple archives.

RemoveStep

Removes or moves a file or directory. It is an error if the path is outside the implementation.

RenameStep

Renames or moves a file or directory. It is an error if the source or destination are outside the implementation.

Requirements

A set of requirements/restrictions imposed by the user on the Implementation selection process. Used as input for the solver.

Restriction

Restricts the versions of an Implementation that are allowed without creating a dependency on the implementation if its was not already chosen.

RetrievalMethod

A retrieval method is a way of getting a copy of an Implementation.

Runner

A special kind of dependency: the program that is used to run this one. For example, a Python program might specify Python as its runner.

SingleFile

Retrieves an implementation by downloading a single file.

TargetBase

Abstract base class for Element and FeedReference. Contains language and architecture parameters.

VersionRange

Represents a (possibly disjoint) set of ranges of ImplementationVersions.

VersionRangePart

Represents an individual non-disjoint part of a VersionRange.

VersionRangePartExact

An exact version number like 2.0 as a part of a VersionRange.

VersionRangePartExclude

An exclusion like !2.0 as a part of a VersionRange.

VersionRangePartRange

A version range like 1.0..!2.0 as a part of a VersionRange.

WorkingDir

Switches the working directory of a process on startup to a location within an implementation. Useful for supporting legacy Windows applications which do not properly locate their installation directory.

XmlUnknown

Abstract base class for XML serializable classes that are intended to retain any unknown XML elements or attributes loaded from an XML file.

ZeroInstallDeployment

Registers and discovers Zero Install deployments on this system.

ZeroInstallEnvironment

Provides access to Zero Install-related environment variables.

Structs

Architecture

Describes a combination of an operating system and a CPU architecture.

FeedTarget

Associates a FeedUri with the Feed data acquired from there.

ManifestDigest

A manifest digest is a means of uniquely identifying an Implementation and verifying its contents.

VersionDottedList

Represents a dotted-list part of a ImplementationVersion.

VersionPart

Represents a part of a ImplementationVersion containing nothing, a VersionModifier, a DottedList or both.

Interfaces

IArgBaseContainer

An object that contains ArgBases.

IBindingContainer

An object that contains Bindings.

IDependencyContainer

An object that contains Dependencys and Restrictions.

IDescriptionContainer

An object that has localizable descriptions.

IElementContainer

An object that contains Groups and Implementations. Supports a composite pattern.

IIconContainer

An object that contains Iconss.

IInterfaceUri

An object that contains an interface URI.

IInterfaceUriBindingContainer

An object that contains an interface URI string.

IRecipeStep

A retrieval step is a part of a Recipe.

ISummaryContainer

An object that has localizable summaries and descriptions.

Enums

Cpu

Describes a CPU architecture.

EnvironmentMode

Controls how Insert or Value is added to a variable.

Importance

Describes how important a dependency is (i.e. whether ignoring it is an option).

OS

Describes an operating system family.

Stability

A stability rating for an Implementation.

VersionModifier