Skip to content

archit9169/0install-dotnet

 
 

Repository files navigation

Logo Zero Install .NET

API documentation Build status
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.

Command-line

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 0install command 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 Core version of the 0install command like this:

    0install run https://apps.0install.net/0install/0install-dotnet.xml
    
  • You can also manually install .NET Core and then download a Zero Install .NET Release, extract the archive and run:

    dotnet 0install.dll
    

NuGet packages

You can use these NuGet packages to integrate Zero Install features into your own application:

ZeroInstall.Model
Data model for the feed format.

ZeroInstall.Store
Management of on-disk caches, signature verification, etc..
This provides a common basis for the packages ZeroInstall.Services and ZeroInstall.Publish. You will usually get this package indirectly as a dependency from there.

ZeroInstall.Services
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.

ZeroInstall.Services.Interfaces
Interfaces/abstractions for Zero Install services (contains no actual implementations).
You will usually get this package indirectly as a dependency of ZeroInstall.Services.

ZeroInstall.DesktopIntegration
Methods for integrating applications with desktop environments (creating menu entries, etc.).

ZeroInstall.Commands
Command-line interface for Zero Install.
The binary in this package serves both as an actual CLI and a library for building other clients.

ZeroInstall.Publish
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.

Building

The source code is in src/, config for building the API documentation is in doc/ and generated build artifacts are placed in artifacts/.
There is a template in feed/ for generating a Zero Install feed from the artifacts. For official releases this is published at: https://apps.0install.net/0install/0install-dotnet.xml
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.5 or newer and run .\build.ps1.
To build on Linux or MacOS X install .NET Core SDK 3.1 or newer and run ./build.sh. Note: Some parts of the code can only be built on Windows.

Contributing

We welcome contributions to this project such as bug reports, recommendations, pull requests and translations. If you have any questions feel free to pitch in on our friendly mailing list.

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 JetBrain's ReSharper or Rider products.

About

core features of Zero Install implemented in .NET

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C# 98.9%
  • XSLT 0.7%
  • PowerShell 0.2%
  • CSS 0.2%
  • Shell 0.0%
  • Batchfile 0.0%