kjs.applife.update.controller 6.0.6

Prefix Reserved
dotnet add package kjs.applife.update.controller --version 6.0.6
                    
NuGet\Install-Package kjs.applife.update.controller -Version 6.0.6
                    
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="kjs.applife.update.controller" Version="6.0.6" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="kjs.applife.update.controller" Version="6.0.6" />
                    
Directory.Packages.props
<PackageReference Include="kjs.applife.update.controller" />
                    
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 kjs.applife.update.controller --version 6.0.6
                    
#r "nuget: kjs.applife.update.controller, 6.0.6"
                    
#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 kjs.applife.update.controller@6.0.6
                    
#: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=kjs.applife.update.controller&version=6.0.6
                    
Install as a Cake Addin
#tool nuget:?package=kjs.applife.update.controller&version=6.0.6
                    
Install as a Cake Tool

Kjs.AppLife.Update.Controller

Kjs.AppLife.Update.Controller is a Windows Forms-compatible .NET Framework client library for applications that use AppLife Builder to publish software updates.

The controller can check for updates, download and validate update packages, and start the AppLife update process. It also provides built-in dialogs and events for applications that need either a complete interactive experience or control over each stage of the update workflow.

Compatibility

  • .NET Framework 4.6.2 or later
  • Windows desktop applications
  • The package contains the controller assembly, design-time support assembly, and localized resources

Applications targeting an earlier .NET Framework version should continue using Kjs.AppLife.Update.Controller version 6.0.0.96.

Installation

Install the package from NuGet:

Install-Package Kjs.AppLife.Update.Controller

Or add the package reference using the .NET CLI:

dotnet add package Kjs.AppLife.Update.Controller

Quick start

Configure the controller with the update location, application identifier, and public key used to validate update packages. Then call UpdateInteractive to run the built-in check, download, and apply workflow.

using System;
using System.Windows.Forms;
using Kjs.AppLife.Update.Controller;

public partial class MainForm : Form
{
    private readonly UpdateController updateController = new UpdateController
    {
        UpdateLocation = "https://updates.example.com/my-app",
        ApplicationId = new Guid("01234567-89AB-CDEF-0123-456789ABCDEF"),
        PublicKeyToken = "<RSAKeyValue>...</RSAKeyValue>"
    };

    private void updateButton_Click(object sender, EventArgs e)
    {
        updateController.UpdateInteractive(this);
    }
}

UpdateLocation, ApplicationId, and PublicKeyToken identify and secure the update source. Replace the example values with the values generated for your AppLife update project.

Staged update workflow

Use the staged API when the application needs to customize the update process:

  1. Call CheckForUpdate or CheckForUpdateAsync.
  2. Inspect CurrentUpdate, AvailableUpdates, or AllUpdates.
  3. Call DownloadUpdate or DownloadUpdateAsync.
  4. Call ValidateUpdate.
  5. Call ApplyUpdate.

The controller also exposes ShowCheckForUpdateDialog and ShowDownloadUpdateDialog when you want to keep the built-in dialogs but control the workflow boundaries.

if (updateController.CheckForUpdate() &&
    updateController.CurrentUpdate != null)
{
    updateController.DownloadUpdate();

    if (updateController.ValidateUpdate())
    {
        updateController.ApplyUpdate();
    }
}

Checking, downloading, and applying an update can cause the application to close or restart. Do not assume that code after UpdateInteractive or ApplyUpdate will execute in every update outcome.

Events and asynchronous operations

Use the asynchronous methods for responsive UI applications:

  • CheckForUpdateAsync with CheckForUpdateCompleted
  • DownloadUpdateAsync with DownloadUpdateCompleted
  • DownloadUpdateProgressChanged for download progress
  • UpdateFound to filter or respond to discovered updates
  • UpdateStarting to perform work before the application shuts down
  • UpdateDialogShowing to customize dialog behavior
  • ShutdownRequested to participate in coordinated application shutdown

When handling CheckForUpdateCompleted, inspect Error, Cancelled, and Result before using the result. Call CancelAsync to request cancellation of an asynchronous operation.

Applying updates

ApplyUpdateOptions controls how an update is started:

  • NoRestart prevents an automatic application restart.
  • NoUpdateWindow suppresses the update window for supported action-list updates.
  • NoShutdown keeps the initiating application instance running.
  • AutoClose closes the update window when the operation completes.
  • WaitForCompletion waits for the update process and must be used with NoShutdown.
  • KeepUpdateFile preserves the downloaded update package.

For example:

updateController.ApplyUpdate(
    ApplyUpdateOptions.NoRestart |
    ApplyUpdateOptions.KeepUpdateFile);

Common configuration

The controller includes additional settings for common deployment scenarios:

  • UseHostAssemblyVersion can derive the application version from the host assembly.
  • Version explicitly controls the version used when checking for updates.
  • AutoDetectProxy, ProxyAddress, and related proxy properties configure network access.
  • PreferredDownloadPath controls where update files are downloaded.
  • EnableOfflineUpdates enables offline update behavior.
  • EnableAutoChaining supports chained updates.
  • ControlledRolloutEnabled and ControlledRolloutHours support controlled rollout scenarios.
  • ErrorDisplayLevel controls the detail shown by built-in dialogs.
  • The controller supports FIPS when used with KJS Update Engine 6.0 or later.

Security and update validation

Set PublicKeyToken to the public RSA key that corresponds to the signing key used by your AppLife update packages. Keep the private signing key out of the application and source repository. Call ValidateUpdate before applying an update when using the staged workflow.

Update history

Use UpdateController.GetUpdateHistory(applicationId) to retrieve update history for an application, and ReadLastUpdateInformation() to read the most recent update information.

License and support

This package is provided by Kinetic Jump Software, LLC. The license terms are included in EULA.txt at the package root. See the project website for product information and support:

https://www.kineticjump.com

Product Compatible and additional computed target framework versions.
.NET Framework net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.6.2

    • No dependencies.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on kjs.applife.update.controller:

Package Downloads
kjs.applife.update.wpf

AppLife Update WPF controls and design-time components for .NET Framework desktop applications.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
6.0.6 124 10/20/2026
6.0.0.96 2,348 9/7/2022
6.0.0.81 961 1/25/2022
6.0.0.75 40,766 11/2/2021
6.0.0.66 813 10/27/2021
6.0.0.39 3,866 8/4/2021

This release targets .NET Framework 4.6.2 and later. Applications targeting .NET Framework versions earlier than 4.6.2 should continue using version 6.0.0.96.