Class ZeroInstallClient
- Namespace
- ZeroInstall.Client
- Assembly
- ZeroInstall.Client.dll
Client for invoking Zero Install commands from within other applications.
public class ZeroInstallClient : IZeroInstallClient
- Inheritance
-
ZeroInstallClient
- Implements
- Inherited Members
Constructors
ZeroInstallClient(IProcessLauncher, IProcessLauncher?)
Client for invoking Zero Install commands from within other applications.
public ZeroInstallClient(IProcessLauncher launcher, IProcessLauncher? guiLauncher = null)
Parameters
launcher
IProcessLauncherUsed to launch
0install
as a child process.guiLauncher
IProcessLauncherUsed to launch
0install-win
as a child process.
ZeroInstallClient(string, string?)
Creates a new Zero Install client.
public ZeroInstallClient(string commandLine, string? guiCommandLine = null)
Parameters
commandLine
stringThe command-line used to launch
0install
. Whitespace must be properly escaped.guiCommandLine
stringThe optional command-line used to launch
0install-win
. Whitespace must be properly escaped.
Properties
Detect
Creates a Zero Install client by detecting the location of 0install
using environment variables or the Windows registry.
public static IZeroInstallClient Detect { get; }
Property Value
Methods
AuditAsync()
Checks that all implementations in the cache are undamaged.
public Task AuditAsync()
Returns
Exceptions
- IOException
0install could not be launched or reported a problem accessing the filesystem.
- UnauthorizedAccessException
0install reported that access to a resource was denied.
- OperationCanceledException
The user canceled the operation.
- TemporarilyUnavailableException
0install is temporarily unavailable. Try again in a few seconds.
- ExitCodeException
0install returned another error.
DownloadAsync(Requirements, bool)
Downloads a program and compatible versions of all of its dependencies.
public Task<Selections> DownloadAsync(Requirements requirements, bool refresh = false)
Parameters
requirements
RequirementsThe requirements describing the program.
refresh
boolFetch fresh copies of all used feeds.
Returns
- Task<Selections>
The downloaded implementations.
Exceptions
- IOException
0install could not be launched or reported a problem accessing the filesystem.
- UnauthorizedAccessException
0install reported that access to a resource was denied.
- WebException
0install reported a problem downloading a file.
- InvalidDataException
0install reported a problem parsing a file, an invalid signature or digest mismatch.
- InvalidOperationException
0install reported a solver error.
- OperationCanceledException
The user canceled the operation.
- TemporarilyUnavailableException
0install is temporarily unavailable. Try again in a few seconds.
- ExitCodeException
0install returned another error.
FetchAsync(Implementation)
Downloads a set of Implementations.
public Task FetchAsync(Implementation implementation)
Parameters
implementation
ImplementationThe implementations to download.
Returns
Exceptions
- IOException
0install could not be launched or reported a problem accessing the filesystem.
- UnauthorizedAccessException
0install reported that access to a resource was denied.
- WebException
0install reported a problem downloading a file.
- InvalidDataException
0install reported a problem parsing a file, an invalid signature or digest mismatch.
- OperationCanceledException
The user canceled the operation.
- TemporarilyUnavailableException
0install is temporarily unavailable. Try again in a few seconds.
- ExitCodeException
0install returned another error.
GetIntegration(FeedUri, bool)
Returns the desktop integration categories that are currently applied for a specific feed.
public ISet<string> GetIntegration(FeedUri uri, bool machineWide = false)
Parameters
uri
FeedUriThe feed URI of the application.
machineWide
boolGet machine-wide desktop integration instead of just for the current user.
Returns
Exceptions
- IOException
0install could not be launched or reported a problem accessing the filesystem.
- UnauthorizedAccessException
0install reported that access to a resource was denied.
- OperationCanceledException
The user canceled the operation.
- TemporarilyUnavailableException
0install is temporarily unavailable. Try again in a few seconds.
- ExitCodeException
0install returned another error.
GetRunStartInfo(Requirements, bool, bool, params string[])
Provides a ProcessStartInfo for running a program via Zero Install. This allows you to wait for the program to exit and/or to capture its output.
public ProcessStartInfo GetRunStartInfo(Requirements requirements, bool refresh = false, bool needsTerminal = false, params string[] arguments)
Parameters
requirements
RequirementsThe requirements describing the program.
refresh
boolFetch fresh copies of all used feeds.
needsTerminal
boolIndicates that the program requires a terminal in order to run.
arguments
string[]Additional arguments to pass to the program.
Returns
IntegrateAsync(FeedUri, IEnumerable<string>?, IEnumerable<string>?, bool)
Adds an application to the application list (if missing) and integrates it into the desktop environment.
public Task IntegrateAsync(FeedUri uri, IEnumerable<string>? add = null, IEnumerable<string>? remove = null, bool machineWide = false)
Parameters
uri
FeedUriThe feed URI of the application.
add
IEnumerable<string>The access point categories to add (e.g.,
capability-registration
,menu-entry
,desktop-icon
).remove
IEnumerable<string>The access point categories to remove (e.g.,
capability-registration
,menu-entry
,desktop-icon
).machineWide
boolApply the operation machine-wide instead of just for the current user.
Returns
Exceptions
- NotAdminException
machineWide
was set but the current process is not running with admin rights.- IOException
0install could not be launched or reported a problem accessing the filesystem.
- UnauthorizedAccessException
0install reported that access to a resource was denied.
- WebException
0install reported a problem downloading a file.
- InvalidDataException
0install reported a problem parsing a file or an invalid signature.
- InvalidOperationException
0install reported a conflict with existing desktop integration.
- OperationCanceledException
The user canceled the operation.
- TemporarilyUnavailableException
0install is temporarily unavailable. Try again in a few seconds.
- ExitCodeException
0install returned another error.
Remove(FeedUri, bool)
Removes an application from the application list and undoes any desktop environment integration.
public void Remove(FeedUri uri, bool machineWide = false)
Parameters
uri
FeedUriThe feed URI of the application.
machineWide
boolApply the operation machine-wide instead of just for the current user.
Exceptions
- NotAdminException
machineWide
was set but the current process is not running with admin rights.- IOException
0install could not be launched or reported a problem accessing the filesystem.
- UnauthorizedAccessException
0install reported that access to a resource was denied.
- OperationCanceledException
The user canceled the operation.
- TemporarilyUnavailableException
0install is temporarily unavailable. Try again in a few seconds.
- ExitCodeException
0install returned another error.
Run(Requirements, bool, bool, params string[])
Runs a program via Zero Install. Does not wait for the program to exit.
public void Run(Requirements requirements, bool refresh = false, bool needsTerminal = false, params string[] arguments)
Parameters
requirements
RequirementsThe requirements describing the program.
refresh
boolFetch fresh copies of all used feeds.
needsTerminal
boolIndicates that the program requires a terminal in order to run.
arguments
string[]Additional arguments to pass to the program.
Exceptions
- IOException
0install could not be launched or reported a problem accessing the filesystem.
- UnauthorizedAccessException
0install reported that access to a resource was denied.
- WebException
0install reported a problem downloading a file.
- InvalidDataException
0install reported a problem parsing a file, an invalid signature or digest mismatch.
- InvalidOperationException
0install reported a solver or executor error.
- OperationCanceledException
The user canceled the operation.
- TemporarilyUnavailableException
0install is temporarily unavailable. Try again in a few seconds.
- ExitCodeException
0install or the target program returned an error.
SelectAsync(Requirements, bool, bool)
Selects a program and compatible versions of all of its dependencies.
public Task<Selections> SelectAsync(Requirements requirements, bool refresh = false, bool offline = false)
Parameters
requirements
RequirementsThe requirements describing the program.
refresh
boolFetch fresh copies of all used feeds.
offline
boolDo not refresh feeds even if they are out-of-date and don't select newer versions of programs for downloading even if they are already known.
Returns
- Task<Selections>
The selected implementations.
Exceptions
- IOException
0install could not be launched or reported a problem accessing the filesystem.
- UnauthorizedAccessException
0install reported that access to a resource was denied.
- WebException
0install reported a problem downloading a file.
- InvalidDataException
0install reported a problem parsing a file or an invalid signature.
- InvalidOperationException
0install reported a solver error.
- OperationCanceledException
The user canceled the operation.
- TemporarilyUnavailableException
0install is temporarily unavailable. Try again in a few seconds.
- ExitCodeException
0install returned another error.
TrustKey(string, string)
Trusts feeds from a specific domain when signed with a specific key.
public void TrustKey(string fingerprint, string domain)
Parameters
fingerprint
stringThe fingerprint of the key to trust.
domain
stringThe domain the key should be trusted for.
UpdateAsync(Requirements)
Checks for updates to a program and downloads them if found.
public Task<bool> UpdateAsync(Requirements requirements)
Parameters
requirements
RequirementsThe requirements describing the program.
Returns
Exceptions
- IOException
0install could not be launched or reported a problem accessing the filesystem.
- UnauthorizedAccessException
0install reported that access to a resource was denied.
- WebException
0install reported a problem downloading a file.
- InvalidDataException
0install reported a problem parsing a file, an invalid signature or digest mismatch.
- InvalidOperationException
0install reported a solver error.
- OperationCanceledException
The user canceled the operation.
- TemporarilyUnavailableException
0install is temporarily unavailable. Try again in a few seconds.
- ExitCodeException
0install returned another error.