Remote Configuration
The updater expects a JSON response from the update server; you can find various implementation details and examples below.
Empty releases is not safe
Serving an empty releases array ("releases": []) is not a no-op. The updater will successfully parse the response but will then fail product version detection (it needs at least one release to compare against), and exit with code 105 (NV_E_PRODUCT_DETECTION). If you want to signal "nothing to do", remove the emergencyUrl and use a release whose version matches what you expect users to have installed.
Optional vs. required fields
Top-level instance and shared objects are optional and can be omitted. However, each entry in the releases array has required fields (name, version, summary, publishedAt, downloadUrl). Omitting required release fields may cause parsing or version-comparison failures.
JSON Schema
The current master branch update response schema is provided here.
C# POCO
The response types (classes, enums) are available in the abstractions/src/Models directory of the repository, published as the Nefarius.Vicius.Abstractions NuGet package.
Migrating from the old standalone package
The standalone Nefarius.Vicius.Abstractions repository has been archived. The package id and namespace are unchanged — simply update your package source/version to pick up the in-repo package.
C++ models
You can find the C++ types used here.
Swagger API documentation
Check out the Swagger documentation for the example implementations.
Hosted examples
An ever growing collection of example configurations is hosted here.
Related topics
- Setup Exit Code Handling — configure which setup exit codes are treated as success, attach custom UI messages, and add per-code help buttons.