All Projects → dbforge → Nupdate

dbforge / Nupdate

Licence: mit
A comfortable update solution for .NET-applications.

Projects that are alternatives of or similar to Nupdate

ProgramUpdater
PUF - Program Updater Framework. A library to easier the task of program updating
Stars: ✭ 14 (-96.45%)
Mutual labels:  updater, install, update, patch
iQuail
Easy to use cross-platform installer & updater for desktop applications
Stars: ✭ 20 (-94.92%)
Mutual labels:  updater, install, update
Unified Hosts Autoupdate
Quickly and easily install, uninstall, and set up automatic updates for any of Steven Black's unified hosts files.
Stars: ✭ 185 (-53.05%)
Mutual labels:  install, updater, microsoft
Try
Dead simple CLI tool to try Python packages - It's never been easier! 📦
Stars: ✭ 588 (+49.24%)
Mutual labels:  install, package, fast
MacOS-All-In-One-Update-Script
Mac update shell script (Appstore, macOS, Homebrew and others)
Stars: ✭ 39 (-90.1%)
Mutual labels:  updater, update, patch
Steam-Apps-Management-API
A basic Steam Application Management API and Valve Data Format (VDF) reader/writer.
Stars: ✭ 24 (-93.91%)
Mutual labels:  update, process
laravel-conditional-providers
THIS PACKAGE HAS BEEN DEPRECATED — Load Laravel service providers and facades based on the current environment.
Stars: ✭ 26 (-93.4%)
Mutual labels:  package, service
jobflow
runs stuff in parallel (like GNU parallel, but much faster and memory-efficient)
Stars: ✭ 67 (-82.99%)
Mutual labels:  fast, process
Vutils
Vutils or Vic Utilities is an utility library written in Modern C++ and for Modern C++. It helps your programming go easier, faster, and simpler.
Stars: ✭ 16 (-95.94%)
Mutual labels:  registry, service
get-installed-path
Get locally or globally installation path of given package name.
Stars: ✭ 39 (-90.1%)
Mutual labels:  package, install
BM
The Utility to Install Songs, Install Mods, Install/Update BMBF, Install HitSounds, download automatically made Playlists, get better support, switch between the modded and unmodded Version of Beat Saber, do full Backups and way more
Stars: ✭ 33 (-91.62%)
Mutual labels:  install, update
fundamental-tools
Web applications with ABAP, done simple.
Stars: ✭ 42 (-89.34%)
Mutual labels:  microsoft, fast
gologger
A concurrent, fast queue/service worker based filesystem logging system perfect for servers with concurrent connections
Stars: ✭ 16 (-95.94%)
Mutual labels:  fast, service
unit-converter
Convert standard units from one to another with this easy to use, lightweight package
Stars: ✭ 104 (-73.6%)
Mutual labels:  registry, package
Port-Able-Suite
🌐 Manager for portable applications
Stars: ✭ 35 (-91.12%)
Mutual labels:  updater, update
Npm Consider
Check package dependencies before installing it
Stars: ✭ 386 (-2.03%)
Mutual labels:  install, package
Php Ide Serenata
Atom IDE package that integrates the Serenata server to provide PHP code assistance
Stars: ✭ 277 (-29.7%)
Mutual labels:  service, package
Nest.land
🦕 The nest.land website
Stars: ✭ 294 (-25.38%)
Mutual labels:  registry, package
Wasm Pack
This tool seeks to be a one-stop shop for building and working with rust- generated WebAssembly that you would like to interop with JavaScript, in the browser or with Node.js. wasm-pack helps you build rust-generated WebAssembly packages that you could publish to the npm registry, or otherwise use alongside any javascript packages in workflows that you already use, such as webpack.
Stars: ✭ 3,848 (+876.65%)
Mutual labels:  registry, package
Windows10Tools
Tools for Windows 10
Stars: ✭ 45 (-88.58%)
Mutual labels:  registry, patch

nUpdate Logo

nUpdate - .NET Update Solution

Release NuGet NuGet
GitHub license Donate

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

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
  • ...

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

nUpdate.ProvideTAP

If you want to use nUpdate with the Taskbased Asynchronous Pattern including async and await, then install this package:

PM> Install-Package nUpdate.ProvideTAP -Version 3.5.0
Trouble installing nUpdate.ProvideTAP?

It may be that Visual Studio shows you a warning like The primary reference "nUpdate.ProvideTAP, Version=..., Culture=neutral, PublicKeyToken=..., processorArchitecture=MSIL" could not be resolved because it has an indirect dependency on the .NET Framework assembly "System.Runtime, Version=..., Culture=neutral, PublicKeyToken=..." which has a higher version "..." than the version "..." in the current target framework. and won't let you compile the project. You can fix this by going to the NuGet Package Manager and updating the Microsoft.Bcl.* packages to the newest version.

nUpdate.WithoutTAP

Otherwise, if you want to use the Eventbased Asynchronous Pattern, make sure to install this package:

PM> Install-Package nUpdate.WithoutTAP -Version 3.5.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 projects nUpdate.ProvideTAP and nUpdate.WithoutTAP contain Windows Forms only. To use a WPF user interface, you need to reference nUpdate.WPFUserInterface (not yet available in NuGet). The codes for the usage are completely equal (except for having the WPF UI in nUpdate.UpdateInstaller as well, you'll have to provide the integrated nUpdate.WPFUpdateInstaller-DLL location using the CustomUiAssemblyPath-property).

// 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. Depending on your reference, nUpdate.ProvideTAP uses the task-based asynchronous pattern with async, await and Task<T> whereas nUpdate.WithoutTAP uses the event-based asynchronous pattern (obsolete). You may have a look at each UpdaterUI implementation to see how it is used.

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.

Web

  • nUpdate - The official website of nUpdate.

Roadmap

  • .NET Standard and .NET Core port
  • WPF port
  • Differential updates
  • Faster updating
  • Fix remaining bugs
  • Improvements
  • Multilanguage everywhere
  • Lots of new languages
  • Code Signing Certificate
  • PowerShell support
  • Better integration in company networks
  • ...

Have a look at the develop-branch for the newest changes.

Supported by

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].