Zero Install .NET API 2.20.0
File system

The ZeroInstall.Store.FileSystem namespace provides interfaces and methods for building and reading file system structures.

The IBuilder interface represents a implementation directory being constructed. (IForwardOnlyBuilder is a more limited subset, that only allows the addition of files but not the modification of files that have already been added.)

There are various implementations of IBuilder:

Implementation store

When adding an implementation to an ZeroInstall.Store.Implementations.IImplementationStore the caller is provided an IBuilder via a callback:

store.Add(manifestDigest, builder =>
{
builder.AddFile(...);
builder.AddFile(...);
});

This allows the implementation store to control how and where the implementation gets constructed (usually via a composite of a DirectoryBuilder and a ManifestBuilder).

Retrieval methods

ZeroInstall.Store.FileSystem.BuilderExtensions and ZeroInstall.Archives.BuilderExtensions provide extension methods for applying retrieval methods to an IBuilder. These methods internally pass the IBuilder to ZeroInstall.Store.FileSystem.ReadDirectory, ZeroInstall.Archives.Extractors, etc..