Zero Install is a decentralized cross-platform software installation system. You can learn more at 0install.net.
This is the .NET implementation of Zero Install. It can be used as a command-line tool on various platforms or be embedded into .NET applications as a set of libraries. It provides the basis for Zero Install for Windows.
Zero Install .NET provides the
0install command-line tool. There are a number of ways you can get it:
You can get a .NET Framework version of the
0installcommand by downloading Zero Install for Windows. (recommended)
If you already have some version of Zero Install (.NET-based or otherwise) on your system you can use it to download and run a .NET 5 version of the
0installcommand like this:
0install run https://apps.0install.net/0install/0install-dotnet.xml
You can use these NuGet packages to integrate Zero Install features into your own application:
Data model for the feed format.
Management of on-disk caches, signature verification, etc..
This provides a common basis for the packages
ZeroInstall.Publish. You will usually get this package indirectly as a dependency from there.
Core services like solving dependencies, downloading implementations and execution selections.
Zero Install itself is built upon this API. You can use the API to integrate Zero Install features into your own application, e.g. for a plugin management system.
Utilities for creating and modifying feed files.
The Zero Install Publishing Tools (including the Feed Editor) are built upon this library. You can use this to automate complex feed creation/update tasks.
For more information read the Zero Install .NET API documentation.
The source code is in
src/, config for building the API documentation is in
doc/ and generated artifacts are placed in
The source code does not contain version numbers. Instead the version is determined during CI using GitVersion.
To build on Windows install Visual Studio 2019 v16.8 or newer and run
To build on Linux or macOS run
Note: Some parts of the project can only be built on Windows and are skipped in Linux/macOS builds.
This repository contains an EditorConfig file. Please make sure to use an editor that supports it to ensure consistent code style, file encoding, etc.. For full tooling support for all style and naming conventions consider using JetBrains' ReSharper or Rider products.