nUpdate 4.0.0

dotnet add package nUpdate --version 4.0.0
NuGet\Install-Package nUpdate -Version 4.0.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="nUpdate" Version="4.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add nUpdate --version 4.0.0
#r "nuget: nUpdate, 4.0.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.
// Install nUpdate as a Cake Addin
#addin nuget:?package=nUpdate&version=4.0.0

// Install nUpdate as a Cake Tool
#tool nuget:?package=nUpdate&version=4.0.0

nUpdate Logo

nUpdate - .NET Update Solution

Release GitHub license Donate

nUpdate is a powerful update system for .NET applications. Providing high security and an easy-to-use user interface, it is the perfect solution for your software.

alternate text is missing from this package README image alternate text is missing from this package README image

Features

  • Remote update package control and management
  • Many configuration settings
  • Operations let you access the file system, the registry and add the possiblity to start or stop processes and services, when installing an update. You can even execute a small C#-script.
  • Automated updating for all clients
  • Secured update packages by signing with SHA512 and 8192 Bit RSA-keys
  • Built-in user interface or a custom user interface can be used
  • Interfaces, service providers and the Event-based/Task-based asynchronous pattern add a lot of flexiblity
  • Smart statistics about the downloads of your published updates
  • Supports very large update packages
  • ...

Specs and requirements

The pure nUpdate library is based on .NET standard 2.0. This means your project needs to fulfill one of these requirements:

  • .NET Framework >= 4.6.1
  • .NET Core >= 2.0
  • UWP >= 10.0.16299

All other libraries in the solution use the .NET Framework 4.6.1.

Installation

You can get the necessary libraries and applications from the current releases. The nUpdate library itself can also be installed in your application using the NuGet package manager.

Using NuGet

PM> Install-Package nUpdate -Version 4.0.0

Usage example

Simple integration

Specify the current client version inside Properties > AssemblyInfo.cs

[assembly: nUpdateVersion("1.0.0.0")]

or inside the constructor of the UpdateManager class (is null by default):

var manager = new UpdateManager(
    new Uri(...), "PublicKey", CultureInfo.Foo, new UpdateVersion("1.0.0.0"));

Note: One of the both needs to be specified. If both are specified, the version specified in the constructor parameter will be used. When none of them is specified, an exception will be thrown.

Using the integrated user interface (Windows Forms or WPF)

The package nUpdate.UI.WindowsForms provides a built-in user interface for Windows Forms application. Install it via NuGet:

PM> Install-Package nUpdate.UI.WindowsForms -Version 4.0.0

To use the built-in WPF user interface, you need to install nUpdate.UI.WPF:

PM> Install-Package nUpdate.UI.WPF -Version 4.0.0

Both projects give you an UpdaterUI class that you can use as follows:

// Generated via nUpdate Administration > Open project > Overview > Copy source
var manager = new UpdateManager(
    new Uri(...), ...);

var updaterUI = new UpdaterUI(manager, SynchronizationContext.Current);
updaterUI.ShowUserInterface();

Using no user interface (synchronously)

// Generated via nUpdate Administration > Open project > Overview > Copy source
var manager = new UpdateManager(
    new Uri(...), ...);
    
if (manager.SearchForUpdates())
{
    manager.DownloadPackages();
    if (manager.ValidatePackages())
        manager.InstallPackage();
    return;
}

Using no user interface (asynchronously)

For asynchronous usage, each method (except InstallPackage and ValidatePackages which are synchronous in any case till now) has a corresponding asynchronous one defined inside the UpdateManager.

Specifying an UpdateVersion

nUpdate uses a custom version implementation to describe application versions. Semantic versioning is not fully supported among the exact specification but an implementation for it is already included in v4.

You may specify versions as known with the ordinary parts Major.Minor.Revision.Build, e.g. new UpdateVersion("1.2.0.0"). Pre-Releases may be noted by appending the leading, lowered letters of developmental stages and a development build. For example, 1.2 Beta 1 is noted as 1.2.0.0b1 or 1.2b1, 1.3.1 Alpha 3 is noted as 1.3.1.0a3 or 1.3.1a3. This means that trailing zero subversions may be ignored and have no need to be declared. The last subversion and the developmental stage may be separated by a dash: 1.2-a1.

There are three developmental stages to this point:

Alpha: a, Beta: b, ReleaseCandidate: rc

Note: These need to be specified by using the abbrevations above. 1.2.3alpha1 is not valid in v3 of nUpdate.

In version 4 any type of pre-release descriptor, as well as build metadata, will be available. It will fulfill the complete semantic versioning specification and have an abstract version system.

Supported by

<img src="https://www.nupdate.net/jetbrains.png" width="96" height="96"/>

Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  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. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (2)

Showing the top 2 NuGet packages that depend on nUpdate:

Package Downloads
nUpdate.UI.WindowsForms

A built-in nUpdate user interface for Windows Forms applications.

nUpdate.UI.WPF

A built-in nUpdate user interface for WPF applications.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
4.0.0 663 1/2/2022