Robbiblubber.Install.Kangaroo 2.1.0

dotnet add package Robbiblubber.Install.Kangaroo --version 2.1.0
                    
NuGet\Install-Package Robbiblubber.Install.Kangaroo -Version 2.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Robbiblubber.Install.Kangaroo" Version="2.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Robbiblubber.Install.Kangaroo" Version="2.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Robbiblubber.Install.Kangaroo" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Robbiblubber.Install.Kangaroo --version 2.1.0
                    
#r "nuget: Robbiblubber.Install.Kangaroo, 2.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Robbiblubber.Install.Kangaroo@2.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Robbiblubber.Install.Kangaroo&version=2.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Robbiblubber.Install.Kangaroo&version=2.1.0
                    
Install as a Cake Tool

robbiblubber.org Kangaroo Library

The robbiblubber.org Kangaroo Library adds updates to an application: it compares the installed version with the version in a Kangaroo repository and starts the Kangaroo installer, which updates the application and starts it again.

The library targets .NET 8 and .NET 10 on Windows.

The repository can be found at https://bitbucket.org/robbiblubber/robbiblubber.install.kangaroo.net/. API documentation is available from https://robbiblubber.lima-city.org/. For general information see http://robbiblubber.org/.

The robbiblubber.org Kangaroo Library is provided under the MIT license and may be used without restrictions under the conditions of this license agreement.

Usage

using Robbiblubber.Install.Kangaroo;

Installation app = Installation.Open("rqoon");        // repository from the installation signature

if(app.UpdateRequired || (app.UpdateAvailable && AskUser($"Update to {app.AvailableVersion}?")))
{
    if(app.Update()) { Application.Exit(); }           // the installer replaces the files and restarts the application
}
  • Installation.Open(key) reads the repository from the signature that the installer has written; Installation.Open(location, key) uses the given repository. An application that has not been installed by Kangaroo has the installed version 0.0.0 and no repository.
  • InstalledVersion, AvailableVersion and RequiredVersion compare with missing parts as 0 (2.0 equals 2.0.0). UpdateAvailable and UpdateRequired are TRUE if the available or required version is higher than the installed one.
  • Update() downloads the installer from the repository, starts it and returns TRUE; it returns FALSE without an available update, unless force is set. The application should exit, so that its files can be replaced. An IOException means the installer could not be downloaded.
  • The installer is started with dotnet kangaroo.dll and administrator rights if the user can get them; if the user declines, it runs without. With useHost: false, kangaroo.exe is started, which asks for the rights itself.
  • After the update, the installer starts the application again with the original command line and the rights of the logged-on user.

Repository.Open(location).Installations lists the installations of a repository.

Repository

A repository is a local or network folder or a web address (http://, https://):

repository.index            items = rqoon, tools;      (only for Installations)
kangaroo.8.bag              installer for .NET 8 (zip)
kangaroo.10.bag             installer for .NET 10 and later (zip)
rqoon/install.defn          installation definition
rqoon/install.bag           installation package (zip)

The installation definition is a DDN file:

available = 2.1.0;                  // available version
required = 2.0;                     // optional: required version
name = rqoon;                       // optional: display name
publisher = robbiblubber.org;       // optional
uninstall = "C:\\Tools\\kangaroo\\kangaroo.exe" -U -k rqoon;      // optional, for the installed apps list
quietuninstall = "C:\\Tools\\kangaroo\\kangaroo.exe" -U -S -k rqoon;

local
{
    signaturefile = rqoon.exe;      // optional, see below
}

The installation directory passed to the installer is the directory of the running application. If local/signaturefile is set and that file is not in the application directory (the application is not part of the installation it updates), the installation directory from the signature is used.

The package and the installer configuration (install.kroo) are described in the readme of the Kangaroo Installer.

Installation signature

The installer writes the signature to C:\ProgramData\robbiblubber.org\instll\<key>.vsig:

version = 2.1.0;
installdir = C:\\Program Files\\rqoon;
repository = https:\/\/example.org\/kangaroo;
scope = machine;                    // machine: all users, user: current user

The folder also holds the log (<key>.log) and a copy of the installer configuration (<key>.kroo) for the uninstallation.

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
2.1.0 82 10/23/2026