Die Projektdatei (Format 2)
Signatur
Ein JSON-Objekt mit "format": 2, UTF-8, Kommentare und nachgestellte Kommas erlaubt, im Ordner des Starters. Der
Starter nimmt in dieser Reihenfolge:
- die
.json-Datei, die/RUNCFG <file>nennt (ein bloßer Dateiname im Ordner des Starters); - (ab Version 2.3.0)
<name>.bootstrapper.json, benannt nach der EXE-Datei des Starters, sofern vorhanden –demo.bootstrapper.jsonfürdemo.exe, so wie in .NETdemo.exe.configzudemo.exegehört; bootstrapper.json.
Der Starter darf umbenannt werden (demo.exe): Er liest seinen Ordner unabhängig von seinem Namen, und die
Verknüpfungen ([Starter]) und der Eintrag unter „Apps“ nennen die umbenannte Datei: Installieren, Aktualisieren,
Starten ohne Quelle, /list und /uninstall verhalten sich gleich. Ab Version 2.3.0 teilen sich mehrere umbenannte
Starter einen Ordner, einer je Profil, jeder mit eigener Projektdatei und ohne /RUNCFG in einer Verknüpfung:
| Starter | Projektdatei | Profil |
|---|---|---|
demo.exe | demo.bootstrapper.json | die Anwendung der Benutzer (Produktivbetrieb) |
demo-admin.exe | demo-admin.bootstrapper.json | die Administrationsversion |
demo-dev.exe | demo-dev.bootstrapper.json | eine Entwicklerversion |
Jedes Profil braucht ein eigenes product; zwei Projektdateien mit demselben Produktschlüssel ersetzen auf dem PC
eines Benutzers gegenseitig ihre Installation. Der Eintrag unter „Apps“ entfernt das Produkt über den Starter unter dem
Pfad, von dem aus er gestartet wurde; ein Starter auf einer Freigabe, die nicht mehr erreichbar ist, kann es von dort
nicht entfernen – starten Sie /uninstall aus einer erreichbaren Kopie des Starters.
Format 1 und Format 2 sind Formate nur dieser Datei. Die Projektdatei des Build-Werkzeugs der WKL Forms Object Library
(access-app.json) ist eine andere Datei mit eigenem Format, und der Starter liest sie nie; von einem Build liest der
Starter nur die app-manifest.json, die das Build-Werkzeug in jeden Auslieferungsordner schreibt (version.from); ihr
eigenes Feld format ist die Version des Schemas des Manifests, nicht eines der Formate dieser Datei. Ob eine Anwendung
über Format 1 oder Format 2 läuft, entscheidet die bootstrapper.json, die ihr Administrator neben den Starter legt,
nicht die Anwendung.
{
"format": 2,
"product": "Kasse",
"display": { "name": "Kasse Pro", "publisher": "Contoso", "copyright": [ "(c) 2026 Contoso" ], "logo": "logo.png" },
"version": { "value": "3.2.1" },
"source": "\\\\server\\share\\kasse",
"deliveryKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE...",
"files": [
{ "id": "bin", "source": "bin", "target": "[VersionDir]" },
{ "source": "com\\x86", "target": "[AppDir]\\com", "action": "registerCom", "bitness": "x86" }
],
"registry": [ { "key": "Software\\Contoso\\Kasse", "values": [ { "name": "Home", "data": "[Dir:bin]" } ] } ],
"shortcuts": [ { "folder": "[Programs]\\Contoso", "name": "Kasse", "target": "[Starter]", "arguments": "[RunConfig]" } ],
"fileTypes": [ { "extension": ".kasse", "progId": "Contoso.Kasse", "description": "Kassenbeleg", "command": "\"[Starter]\" [RunConfig] \"%1\"" } ],
"actions": [ { "when": "beforeInstall", "program": "setup\\vc_redist.x86.exe", "arguments": "/install /quiet /norestart", "successCodes": [ 0, 3010 ] } ],
"conditions": [ { "kind": "dotnet", "value": "Microsoft.WindowsDesktop.App 10.0", "message": ".NET 10 is missing.", "link": "https://dot.net" } ],
"start": { "file": "[VersionDir]\\Kasse.exe", "arguments": "/mode kiosk" },
"keepVersions": 2
}
Zusammenfassung
Was der Starter für den Windows-Benutzer installiert, was er registriert, welche Bedingungen er prüft, welche Programme er ausführt und was er startet – jedes beliebige Programm oder jede Datei; eine Access-Anwendung ist ein Fall unter anderen. Der Starter führt das ohne Administratorrechte aus, als eine Transaktion mit Rollback, gezählt und entfernbar unter Einstellungen › Apps.
Eigenschaftswert
| Element | Typ | Standard | Bedeutung |
|---|---|---|---|
format | Zahl | - | 2. |
product | Text | - | Produktschlüssel: Buchstaben, Ziffern, ., -, _, höchstens 64. Benennt den Eintrag WKL.<product> unter „Apps“ und den Standardordner. |
display | Objekt | leer | Was die Fenster und „Apps“ zeigen: name (Standard: der Produktschlüssel), publisher, copyright (Zeilen), authors (Zeilen), logo (PNG, BMP oder JPEG im Ordner des Starters oder darunter), preparing und starting (Texte des Fortschrittsfensters), language (en, de, sl, hr, it; leer: wie Office), colorScheme (automatic, light, dark). |
version | Objekt | - | Genau eines von value (zum Beispiel "3.2.1", zwei bis vier Zahlen) und from: eine Datei in der Quelle – app-manifest.json einer Access-Auslieferung (deren version; setzt außerdem [ManifestFile]) oder ein Programm bzw. eine Bibliothek (deren Produktversion). |
source | Text | - | Der Auslieferungsordner: absolut, eine Freigabe oder relativ zum Ordner des Starters. Ein relativer Pfad gilt ab dem Ordner, aus dem der Starter läuft; nach einer Installation aus einem MSI-Paket ist das Program Files (x86)\WKL\<product>, die Projektdatei eines Pakets nennt deshalb eine Freigabe oder einen absoluten Pfad. |
deliveryKey | Text | leer | Der öffentliche Lieferschlüssel des Herausgebers (Base64, wie /new-key ihn ausgibt). Ist er gesetzt, werden nur Dateien installiert, die damit signiert sind (nicht die Programme von actions); siehe Signierte Auslieferungen. |
appDir | Text | [LocalAppData]\WKL\[Product] | [AppDir]. |
versionDir | Text | [AppDir]\Frontends\[Version] | [VersionDir]: ein Ordner je ausgelieferter Version. |
bitness | Text | access | Welcher Bitbreite die Einträge mit bitness folgen: access (der von Microsoft Access; Windows, wenn keines installiert ist), os, x86, x64. |
files | Liste | leer | Dateien der Auslieferung und wohin sie gehen; siehe Dateien. |
registry | Liste | leer | Schlüssel unter HKEY_CURRENT_USER: key (ohne den Stamm), view (64 Standard, 32), bitness, values mit name (leer: Standardwert), kind (String, ExpandString, DWord, QWord, MultiString mit durch \n getrennten Zeilen), data. |
shortcuts | Liste | leer | folder ([Desktop], [Programs] oder darunter), name, target, arguments, icon (Datei mit optionalem ,index), hotkey (zum Beispiel Ctrl+Alt+K; Buchstaben, Ziffern, F1–F24). |
fileTypes | Liste | leer | Dateitypen für den Benutzer: extension (mit Punkt), progId, description, command, icon. |
actions | Liste | leer | Programme, die der Starter ausführt; siehe Aktionen. |
conditions | Liste | leer | Werden geprüft, bevor etwas installiert wird; siehe Bedingungen. |
ini | Objekt | keine | Eine INI-Datei: path (Platzhalterpfad, der auf .ini endet), values mit section, key, value. Schlüssel, die wie Kennwörter aussehen, werden abgelehnt. |
start | Objekt | nichts gestartet | file (ein beliebiges Programm oder eine beliebige Datei; ein Dokument öffnet sich über seine Dateizuordnung), arguments, folder (Standard: der Ordner von file); für eine Access-Datenbank außerdem runtime (auto: wie app-manifest.json es angibt, sonst für eine ACCDE; always; never) und command (der Wert für /cmd). window (ab 2.1.0): normal (Standard) oder minimized – das Programm startet minimiert, ohne den Vordergrund zu übernehmen, für eine Anwendung, die ihr Fenster selbst wiederherstellt, sobald sie bereit ist, zum Beispiel nach ihrer Anmeldung; Access baut sein Menüband und seinen Dokumentbereich im minimierten Zustand auf wie bei einem normalen Start; für ein Dokument, das über seine Dateizuordnung geöffnet wird, lässt sich ein minimiertes Fenster nur anfordern, sein Programm entscheidet. splash (ab 2.2.0): duration, die Mindestanzeigedauer des Startfensters als Begrüßungsbildschirm bei jedem Start, in Millisekunden ab dem Moment, in dem es erscheint, 0 bis 10000, Standard 3000, auch wenn splash fehlt. Das Ziel startet als letzter Schritt, sobald Prüfen und Installieren erledigt sind und die Dauer verstrichen ist (nie eine Wartezeit zusätzlich zu Arbeit, die länger dauert); der Begrüßungsbildschirm schließt sich in dem Moment, in dem das Ziel sein erstes Fenster zeigt (ab 2.2.1). 0 schaltet den Begrüßungsbildschirm ab (ein Fenster erscheint dann nur, wenn ein Start länger als 0,8 Sekunden dauert). environment: Variablen, die das gestartete Programm erhält, jeweils name, value (mit Platzhaltern, zum Beispiel [Dir:dotnet-x86]) und optional bitness (x86, x64); ein Name einmal je Bitbreite. Die installierte Version behält sie für einen Start ohne Quelle. |
keepVersions | Zahl | 2 | Im Benutzerprofil aufbewahrte Versionen, mindestens 2. |
Platzhalter
Jedes Ziel, in das der Starter schreibt (appDir, versionDir, ein files-Ziel, ein Verknüpfungsordner, die
INI-Datei), ist ein Platzhalterpfad unterhalb eines Ordners des Benutzers; ein Ziel außerhalb davon, .. in einem Pfad,
ein Schlüssel der Registrierungsdatenbank, der einen anderen Stamm nennt, und ein unbekannter Platzhalter werden
abgelehnt, bevor etwas ausgeführt wird (Code 11).
Ordner des Benutzers – dürfen ein Ziel einleiten. Vor 2.3.0 gab es nur [LocalAppData], [AppData], [Documents],
[Desktop], [Programs] und [Startup].
| Platzhalter | Ordner (Beispiel für die Benutzerin anna) |
|---|---|
[UserProfile] | %USERPROFILE% (C:\Users\anna), für eine Anwendung in einem eigenen Ordner unterhalb des Profils ([UserProfile]\Demo) |
[LocalAppData] | C:\Users\anna\AppData\Local |
[LocalAppDataLow] | C:\Users\anna\AppData\LocalLow |
[AppData] | C:\Users\anna\AppData\Roaming (folgt einem servergespeicherten Profil) |
[UserPrograms] | C:\Users\anna\AppData\Local\Programs, wohin Installationsprogramme je Benutzer Programme legen |
[Documents], [Downloads], [Pictures], [Music], [Videos] | Die Bibliotheken des Benutzers, dort, wohin der Benutzer sie verschoben hat |
[Desktop], [Favorites], [Templates], [SendTo] | Desktop, Favoriten, Dokumentvorlagen und das Menü „Senden an“ des Benutzers |
[StartMenu], [Programs], [Startup] | Das Startmenü des Benutzers, sein Ordner „Programme“ und der Autostart-Ordner |
[WklRoot] | [LocalAppData]\WKL |
Die Bibliotheken sowie [Downloads], [LocalAppDataLow] und [UserPrograms] werden als bekannte Ordner von Windows
gelesen; ein Ordner, den Windows auf diesem PC nicht benennen kann, bleibt ohne Wert, und ein Ziel darunter wird wie ein
unbekannter Platzhalter abgelehnt.
Ordner des Computers – werden überall aufgelöst, wo ein Platzhalter stehen darf, der kein Ziel ist: start (Datei,
Argumente, Ordner, Umgebung), actions, conditions und Daten in der Registrierungsdatenbank. Sie leiten nie ein Ziel
ein: Dort zu schreiben erfordert Administratorrechte.
| Platzhalter | Ordner |
|---|---|
[ProgramFiles], [ProgramFilesX86] | C:\Program Files, C:\Program Files (x86) |
[CommonProgramFiles], [CommonProgramFilesX86] | C:\Program Files\Common Files und sein x86-Gegenstück |
[ProgramData] | C:\ProgramData |
[CommonDocuments], [CommonDesktop], [CommonStartMenu], [CommonPrograms], [CommonStartup] | Die Ordner, die alle Benutzer gemeinsam haben |
[Windows], [System], [SystemX86], [Fonts] | C:\Windows, C:\Windows\System32, C:\Windows\SysWOW64, C:\Windows\Fonts |
Platzhalter des Projekts:
| Platzhalter | Wert |
|---|---|
[AppDir], [VersionDir] | Siehe oben |
[Product], [Version], [Bitness] | Produktschlüssel, ausgelieferte Version, x86 oder x64 |
[SourceDir] | Der Quellordner |
[Starter] | Vollständiger Pfad der EXE-Datei des Starters |
[StarterDir], [StarterName] | Ab Version 2.3.0: der Ordner der EXE-Datei des Starters ohne abschließendes \ und ihr Dateiname ohne .exe (demo für demo.exe) – für Dateien, die das Installationspaket daneben abgelegt hat, zum Beispiel "WKL_SETTINGS": "[StarterDir]\[StarterName].ini" in start.environment |
[RunConfig] | /RUNCFG "<file>", wenn der Starter die Projektdatei nicht von selbst fände (weder bootstrapper.json noch, ab Version 2.3.0, die nach dem Starter benannte Datei), sonst leer – für Verknüpfungen und Dateitypen, die den Starter erneut starten |
[Dir:<id>] | Der Zielordner des files-Eintrags mit dieser id |
[ItemVersion] | Nur in einem target: die Produktversion der versionOf-Datei des Eintrags; bei einem COM-Server ohne diese Datei das Release aus seiner registration.json |
[ManifestFile] | Die file von app-manifest.json, wenn version.from sie nennt |
Dateien
| Element | Standard | Bedeutung |
|---|---|---|
id | keine | Name für [Dir:<id>]; einmal verwendet oder einmal je Bitbreite. |
source | - | Eine Datei, ein Ordner (alles darunter, Unterordner bleiben erhalten) oder ein Muster in einem Ordner (bin\*.dll), relativ zur Quelle. |
target | - | Der Zielordner. |
action | copy | copy; registerCom (ein COM-Server, für den Benutzer registriert aus der daneben liegenden registration.json); registerNetCom (eine .NET-Framework-Assembly für COM, auf dieselbe Weise). |
bitness | beide | x86 oder x64: nur für diese Bitbreite installiert. |
versionOf | keine | Eine Datei des Eintrags, deren Produktversion [ItemVersion] ist. Ein COM-Server (registerCom) braucht keine: Fehlt die Angabe oder die genannte Datei, etwa weil der Server nach dem Schreiben der Projektdatei umbenannt wurde, gilt das Release aus seiner registration.json. |
Dateien unterhalb von [VersionDir] gehören zu ihrer Version: einmal abgelegt, nie ersetzt (ein Programm, das in seinen
Ordner schreibt, behält seine Daten), mit der Version entfernt. Dateien an jeder anderen Stelle sind gemeinsam genutzt und
werden gezählt: Derselbe Ordner, den zwei Produkte verwenden, bleibt, bis das letzte davon entfernt wird; eine Datei, die
in einer späteren Auslieferung geändert ist, wird ersetzt.
Hinweise
Installieren, aktualisieren und starten
Jeder Start liest das Projekt, prüft die Bedingungen und installiert die ausgelieferte Version, wenn sie neu oder
unvollständig ist: Dateien, Werte in der Registrierungsdatenbank, Dateitypen, Verknüpfungen, die INI-Datei, den
vertrauenswürdigen Speicherort (nur wenn start.file eine Access-Datenbank ist) und den Eintrag unter „Apps“; danach
führt er die afterInstall-Aktionen aus, alles in einer Transaktion. Anschließend entfernt er Versionen über
keepVersions hinaus (nie die gestartete und nie die zuletzt funktionierende) und startet start.file. Ein Fehler auf
diesem Weg rollt alles zurück; die Codes sind die der Fehlercodes des Starters.
Ist die Quelle nicht erreichbar (Code 12) oder ihre Auslieferung nicht vertrauenswürdig (Code 51), startet die
installierte Version – die zuletzt funktionierende, sonst die neueste –, und das Update wartet bis zum nächsten Start.
Eine Diagnose (/diagnose) meldet die Quelle so, wie sie ist.
Signierte Auslieferungen
delivery.json in der Quelle listet jede Datei der ausgelieferten Version mit Größe und SHA-256 auf;
delivery.json.sig daneben ist ihre Signatur mit dem Lieferschlüssel des Herausgebers (ECDSA P-256). /publish
schreibt beide.
| Projekt | Auslieferung | Ergebnis |
|---|---|---|
deliveryKey gesetzt | mit diesem Schlüssel signiert, Dateien wie aufgelistet | Installiert |
deliveryKey gesetzt | kein Manifest, keine oder eine andere Signatur, ein anderes Produkt oder eine andere Version, eine Datei nicht aufgelistet oder geändert | Nicht installiert (Code 51); die installierte Version startet |
deliveryKey gesetzt | signiert, aber eine niedrigere Version als je installiert, und withdrawn nennt diese Version nicht | Nicht installiert (Code 52); die installierte Version startet |
kein deliveryKey | delivery.json vorhanden | Größen und Hashes geprüft (Code 51, wenn eine Datei abweicht) |
kein deliveryKey | keine delivery.json | Installiert wie ausgeliefert |
Jede Kopie wird nach dem Kopieren gegen das Manifest geprüft, sodass auch eine Datei, die zwischen Prüfung und Kopieren geändert wurde, nicht installiert wird.
Rückkehr zu einer früheren Version. Mit deliveryKey vergleicht der Starter die ausgelieferte Version mit der höchsten,
die der Benutzer von dem Produkt je installiert hat (auch nach einer Bereinigung oder Deinstallation), in der Reihenfolge
unter Versionen. Eine niedrigere Version wird nur installiert, wenn withdrawn in
delivery.json diese höchste Version nennt; /publish /withdraw schreibt das Feld (siehe
Signierte Auslieferung veröffentlichen).
Ohne deliveryKey wird eine niedrigere Version wie bisher installiert.
Nicht abgedeckt. Die Signatur deckt die Dateien von files ab. Programme von actions laufen direkt aus der Quelle und werden nicht gegen delivery.json geprüft: Wer in die Quelle schreiben kann, kann sie ändern, und sie laufen mit den Rechten jedes Benutzers, der die Anwendung startet. Eine früher signierte Auslieferung bleibt gültig; ein Starter, der eine höhere Version installiert hatte, weist sie ab (Code 52), ein Benutzer ohne höhere Version installiert sie aber. Schützen Sie den Schreibzugriff auf die Quelle. Der Vertrauensanker ist der Ordner des Starters mit seiner Projektdatei: Der Lieferschlüssel schützt eine Auslieferung nur, solange Benutzer bootstrapper.json nicht ändern können, etwa wenn die IT den Starter mit dem MSI unter „Programme“ installiert. Ein Starter samt Projektdatei auf der Freigabe oder im Profil lässt sich zusammen mit dem Schlüssel ändern.
Der Lieferschlüssel gehört dem Herausgeber selbst; er kostet keine Codesignatur. Die Anwendungssteuerung von Windows prüft nur Authenticode-Signaturen von Programmen und Bibliotheken, die der Herausgeber wie bisher mit dem Firmenzertifikat signiert.
COM-Server
Der Starter führt auf dem Computer eines Benutzers nie die eigene Registrierung eines Servers aus (DllRegisterServer,
regsvr32): Er schreibt die Registrierung aus registration.json, die tools\Export-ComRegistration.ps1 auf dem
Computer des Herausgebers erfasst. Bringen zwei Produkte denselben Server in verschiedenen Releases mit, bleibt das
neuere registriert; wird es entfernt, wird das verbleibende wieder registriert. Siehe
Signierte Auslieferung veröffentlichen.
Aktionen
| Element | Standard | Bedeutung |
|---|---|---|
when | afterInstall | beforeInstall (vor der Transaktion; ein Fehler installiert nichts), afterInstall (in ihr; ein Fehler rollt die Version zurück), beforeUninstall (ein Fehler hält die Deinstallation an). |
program | - | Ein Platzhalterpfad oder ein Pfad relativ zur Quelle. |
arguments | leer | Mit Platzhaltern. |
once | true | Nur wenn die ausgelieferte Version zum ersten Mal installiert wird; false: bei jedem Start. |
wait | true | Warten (höchstens 30 Minuten) und den Exitcode bewerten; false: gestartet genügt. |
successCodes | [0] | Exitcodes, die als Erfolg gelten, zum Beispiel [0, 3010] für ein Setup, das einen Neustart verlangt. |
Ein Programm läuft mit den Rechten des Benutzers; ein Setup, das Administratorrechte braucht, scheitert mit seinem Exitcode (Code 43). Solche Voraussetzungen gehören in die Erstinstallation durch die IT.
beforeUninstall-Aktionen laufen einmal je Deinstallation, unabhängig von once, bevor etwas entfernt wird. Ihre
Platzhalter werden für die Version aufgelöst, die der Starter zuletzt starten würde ([VersionDir] ist diese installierte
Version). Ein relatives program wird aus der Quelle genommen, die bis dahin verschwunden sein kann (eine Freigabe, die
nicht mehr erreichbar ist, eine entfernte Auslieferung): Das Programm kann nicht starten, die Deinstallation hält mit
Code 43 an, und nichts wird entfernt. Lassen Sie solche Programme stattdessen auf die installierte Kopie zeigen
([VersionDir]\...).
Bedingungen
kind | value | Nicht erfüllt |
|---|---|---|
file | Ein Platzhalterpfad | 35 |
registry | HKLM\...\Key oder HKCU\...\Key (der Schlüssel existiert); ...\Key|Name für einen Wert, mit expected für seine Daten | 35 |
program | Der Anfang eines Namens unter „Apps“; expected: die niedrigste DisplayVersion | 35 |
access | Leer (überhaupt Access) oder die Wörter full, x86, x64 | 20, 22, 21 |
dotnet | Name und Version des Frameworks, zum Beispiel Microsoft.WindowsDesktop.App 10.0 | 33 |
odbcDriver, odbcDataSource | Der Name, in der Bitbreite des Projekts | 34 |
message und link der Bedingung erscheinen in den Diagnosedetails.
Format 1
Eine Datei mit "format": 1 (eine Access-Anwendung, der Starter 1.0) wird als Projekt gelesen: die Datenbank aus
app-manifest.json nach [VersionDir] (der Ordner, den 1.0 verwendet hat), die WKL-Komponenten und ODBC-Treiber je
Release und Bitbreite unterhalb von [WklRoot], die Datenquelle jedes Treibers, die Prüfungen der Einstellungen als
Bedingungen, die Datenbank als Startziel. Dateien im Format 1 funktionieren unverändert weiter; ein vom WKL Bootstrapper Manager
geschriebenes Projekt im Format 2 ersetzt eine solche Datei bei Bedarf. Ob der Installer von 2.0 eine Auslieferung im
Format 1 übernimmt oder ob sie auf dem Weg von 1.0 läuft, hängt von ihrem Komponentenordner ab: mit registration.json
neben der DLL (oder ohne Komponenten) der Installer, sonst der Weg von 1.0 – siehe
Wann 2.0 installiert und wann 1.0 läuft.
Eine Datei im Format 1:
{
"format": 1,
"product": "INSTRA",
"displayName": "INSTRA Verwaltung",
"source": "\\\\server\\apps\\INSTRA\\production",
"components": "components",
"ini": { "file": "TECCUsr.ini", "values": [ { "section": "Properties", "key": "SRV", "value": "sql01" } ] },
"branding": { "logo": "logo.png", "company": "Contoso", "preparing": "Die neue Version wird eingerichtet ..." },
"command": "mandant=2",
"odbcDrivers": [ "ODBC Driver 18 for SQL Server" ],
"language": "",
"colorScheme": "automatic",
"keepVersions": 2
}
| Eintrag | Bedeutung |
|---|---|
format | 1. |
product | Schlüssel der Anwendung; benennt den Ordner im Benutzerprofil (Buchstaben, Ziffern, ., -, _). |
displayName | Name in den Fenstern; product, wenn leer. |
source | Ordner mit app-manifest.json und der ausgelieferten Datei: absolut, eine Freigabe oder relativ zur EXE-Datei. |
components | Ordner der WKL-Komponenten unterhalb von source (mit x86 und x64), für den Benutzer registriert; leer, wenn sie anderweitig installiert sind. Registriert wird nur die WKL Forms Object Library, nicht WKL Office JSON. |
ini | INI-Datei, die manche älteren Anwendungen neben sich lesen; nur Werte, nie Kennwörter (Schlüssel, die wie Geheimnisse aussehen, werden abgelehnt). |
branding | Firmenlogo (eine Bilddatei neben der EXE-Datei, austauschbar ohne neuen Build; die Fenster zeigen es anstelle des Logos von DATEC PRO, das sie standardmäßig zeigen), Firmenname, Text, während eine Version abgelegt wird. |
command | Wert für /cmd von Access (in VBA mit Command() gelesen); ohne Anführungszeichen. |
window | Ab 2.1.0. normal (Standard, auch wenn der Eintrag fehlt) oder minimized: Access startet minimiert, ohne den Vordergrund zu übernehmen; die Anwendung stellt ihr Fenster selbst wieder her (zum Beispiel mit DoCmd.Maximize nach ihrer Anmeldung). |
splash | Ab 2.2.0. duration: wie start.splash.duration von Format 2 – Mindestanzeigedauer des Startfensters in Millisekunden, 0 bis 10000, Standard 3000; 0 schaltet den Begrüßungsbildschirm ab. |
odbcDrivers | ODBC-Treiber, die die verknüpften Tabellen brauchen, geprüft in der Bitbreite von Access: der Schlüssel des Treibers unter ODBCINST.INI des Computers und seine DLL. |
odbcDataSources | Ab 1.0.1. ODBC-Datenquellen (DSNs), die die verknüpften Tabellen brauchen – für einen nur für den Benutzer installierten Treiber, der keinen Eintrag unter ODBCINST.INI hat. Ein Benutzer-DSN (HKEY_CURRENT_USER\Software\ODBC\ODBC.INI) hat Vorrang vor einem System-DSN (gelesen in der Bitbreite von Access); sein Driver ist ein Treibername aus ODBCINST.INI oder der vollständige Pfad einer DLL in der Bitbreite von Access, wörtlich genommen (Umgebungsvariablen werden nicht erweitert). |
odbc | Ab 2.0. ODBC-Treiber, die die Auslieferung für den Benutzer mitbringt, mit ihrer Datenquelle; siehe Der Installer. |
language | Sprache der Fenster: en, de, sl, hr, it; leer für automatisch (die Sprache der Benutzeroberfläche von Office, dann von Windows, dann Englisch). |
colorScheme | Farben der Fenster: automatic (hoher Kontrast von Windows, wenn er eingeschaltet ist, sonst die Farbpalette Riviera der WKL Forms Object Library), light oder dark. |
keepVersions | Im Benutzerprofil aufbewahrte Versionen, mindestens 2 (die laufende und die zuletzt funktionierende). |
Codebeispiel
Ein Programm, das keine Access-Anwendung ist, in einem eigenen Ordner je Version, gestartet mit Argumenten:
{
"format": 2,
"product": "Lager",
"display": { "name": "Lagerverwaltung", "publisher": "Contoso" },
"version": { "from": "bin\\Lager.exe" },
"source": "\\\\server\\share\\lager",
"files": [ { "source": "bin", "target": "[VersionDir]" } ],
"shortcuts": [ { "folder": "[Desktop]", "name": "Lager", "target": "[Starter]", "arguments": "[RunConfig]" } ],
"start": { "file": "[VersionDir]\\Lager.exe", "arguments": "/user \"[Product]\"" }
}