One way to solve this using Squirrel is to first design a versioning scheme that maps to severity levels. For example, consider a version format of X.Y.Z (Major.Minor.Patch). niceToHave
increments the patch version, feature
increments the minor version, and critical
increments the major version.
Then you can customize UpdateManager in your application to implement the logic that applies updates:
using (var mgr = new UpdateManager(pathToUpdateFolder))
{
var updates = await mgr.CheckForUpdate();
if (updates.ReleasesToApply.Any())
{
var lastVersion = updates.ReleasesToApply.OrderBy(x => x.Version).Last();
// TODO: implement the logic to call:
// await mgr.DownloadReleases(updates.ReleasesToApply);
// await mgr.ApplyReleases(updates);
}
}