Color scheme: Riviera
You are here: start » en » Documentation » Microsoft Access development tools » WKL Forms Object Library » WKL Forms Object Library reference » app-manifest.json

app-manifest.json

The description of one delivered target of an Access application, written by tools/build/Build-AccessApp.ps1 next to the delivered file when the project file has a deploy entry (access-app.json). It tells the program that places the application on a user's computer what the file is, which version it has and what it needs.

Signature

{
  "format": 1,
  "product": "Kunden",
  "version": "1.4.0",
  "target": "Production",
  "file": "Kunden.accde",
  "sha256": "3f5a...e09c",
  "size": 1835008,
  "bitness": "x86",
  "runtime": true,
  "requires": [ { "library": "WklForms", "version": "2.0" } ],
  "built": "2026-10-12T09:30:00Z"
}

Summary

One file per target folder, UTF-8 without byte order mark. A program reads it to check the delivered file (sha256, size) and to decide whether the computer can run it (bitness, runtime, requires).

Parameters

EntryTypeDescription
formatnumberVersion of the schema of this manifest: 1. A reader refuses a higher number it does not know. It has nothing to do with the formats 1 and 2 of the starter's bootstrapper.json (Wkl.Bootstrapper): a manifest of schema 1 is read by projects of either format.
producttextname of the project file.
versiontextdeploy.version of the project file.
targettextDevelopment, Administration or Production.
filetextFile name of the delivered database in the same folder.
sha256textSHA-256 (FIPS 180-4) of the file, lower-case hexadecimal.
sizenumberSize of the file in bytes.
bitnesstextx86 or x64 for an ACCDE - it runs only in Access of the bitness it was built with -, any for an ACCDB.
runtimeYes/Notrue for production: the file is meant for the Access Runtime. Administration needs full Access; development is an ACCDB for developers.
requireslistThe type libraries of the project's references that name a library (WklForms, WklJSON), each with the version the application was built against: the version Access recorded in the database, which is the highest one registered on the build machine (the build warns when it is above the version in references). Manifests of applications built against release 1.x name the library WklComponents, as it was called up to 1.68.
builttextTime of the build, UTC (ISO 8601).

Remarks

  • sha256 and size describe the file as built, before it is opened. Access writes to an ACCDE or ACCDB when it opens it, also with /runtime, so its size and checksum change. A file in the output folder that was opened once no longer matches its manifest. Test a delivery on a copy: copy the file, compare size and checksum with the manifest, then open the copy.
  • A read-only place keeps the file unchanged. The writing on opening is not required: in a folder where the user may only read (for example under Program Files, or a share with read access only), Access opens the ACCDE without writing it, without a lock file (.laccdb) and without an error or a message, also with /runtime, and two Access instances can have it open at the same time; size and checksum stay unchanged. An application that writes files next to itself (a log, a report) cannot do that there; such files belong in a folder of the user.
  • What the target's file already contains: the startup properties of its mode from the application model (navigation pane, menus, special keys, bypass key, status bar, title, start form, ribbon). They act at the first opening on the user's computer.
  • Version of the WKL libraries: a database runs with the registered release of its version or a newer one; with an older one it is not supported and can break with error 459 (How to: Deploy to user PCs).
  • built changes with every build; compare files by sha256, not the manifest as a whole.
  • The checksum detects a damaged copy, not a deliberate change: sha256 stands in the same unsigned file, so whoever can replace the file can replace the manifest.

Code example

Checking a delivered file in PowerShell before placing it:

$manifest = Get-Content .\production\app-manifest.json -Raw | ConvertFrom-Json
$hash = (Get-FileHash (Join-Path .\production $manifest.file) -Algorithm SHA256).Hash.ToLowerInvariant()
if ($hash -ne $manifest.sha256) { throw "$($manifest.file) ist beschaedigt." }

Inheritance

None

en/wiki/msaccess/comctl/reference/app-manifest-json.txt · Last modified: by Wolfgang van der Stille