Anwendung mit dem Bootstrapper ausliefern
Liefern Sie eine mit der WKL Forms Object Library gebaute Access-Anwendung so aus, dass ihre Benutzer sie mit einem Klick starten, immer in der aktuellen Version, ohne Installationsprogramm und ohne Administratorrechte.
Voraussetzungen: WKL Forms Object Library 1.51 oder höher (deploy des Build-Werkzeugs), WKL Bootstrapper 1.0 oder höher.
Diese Seite zeigt die Projektdatei im Format 1, das der Starter weiterhin liest. Ein neues Projekt beginnen Sie im Format 2, am einfachsten aus Vorlagen.
Lösungsüberblick
- Das Build-Werkzeug der WKL Forms Object Library schreibt die Auslieferung: die Datenbank und ihre
app-manifest.json. - Die Auslieferung kommt auf eine Freigabe, mit den WKL-Komponenten des Release daneben.
- Der Starter –
Wkl.Bootstrapper.exeundbootstrapper.json– zeigt auf die Freigabe; die Benutzer starten die EXE-Datei.
Umsetzung
Bauen Sie die Auslieferung. Nennen Sie in der Projektdatei des Build-Werkzeugs das Anwendungsmodell und die Auslieferung:
{ "name": "Kunden", "appModel": "src/app/app-model.json", "deploy": { "version": "1.4.0", "targets": [ "Production" ] } }Build-AccessApp.ps1schreibtdeploy\productionmitKunden.accdeundapp-manifest.json(Produkt, Version, Datei, Größe, SHA-256, Bitbreite, Runtime, verlangtes WKL-Release).- Legen Sie die Auslieferung auf die Freigabe. Kopieren Sie zuerst die Datenbank und zuletzt
app-manifest.json, zum Beispiel nach\\server\apps\Kunden\production. Die Benutzer brauchen nur Lesezugriff. - Fügen Sie die WKL-Komponenten hinzu, wenn sie auf den PCs der Benutzer nicht registriert sind: Kopieren Sie die Ordner
x86undx64des WKL-Release-Pakets nach\\server\apps\Kunden\production\components\x86und...\x64. Richten Sie den Starter ein. Ein Ordner mit
Wkl.Bootstrapper.exeundbootstrapper.json, auf der Freigabe oder auf jeden PC kopiert:{ "format": 1, "product": "Kunden", "displayName": "Kundenverwaltung", "source": "\\\\server\\apps\\Kunden\\production", "components": "components", "odbcDrivers": [ "ODBC Driver 18 for SQL Server" ], "keepVersions": 2 }Jeder Eintrag ist in der Referenz der Projektdatei beschrieben. Ein eigenes Logo kommt neben die EXE-Datei und in
branding.logo; ohne es zeigen die Fenster das Logo von DATEC PRO.- Geben Sie den Benutzern eine Verknüpfung auf
Wkl.Bootstrapper.exe. Prüfen Sie die Einrichtung einmal mitWkl.Bootstrapper.exe /diagnoseauf dem PC eines Benutzers: Die erste Zeile0 Okbedeutet, dass ein Start gelingen wird. - Liefern Sie ein Update aus, indem Sie die neue Version bauen und in denselben Ordner kopieren (zuerst die Datenbank, zuletzt
app-manifest.json). Beim nächsten Start erhalten die Benutzer die neue Version in einem eigenen Ordner; eine Kopie, die in Access noch geöffnet ist, bleibt unberührt.
Erwartetes Ergebnis
Der erste Start eines Benutzers kopiert die Version nach %LOCALAPPDATA%\WKL\Kunden\Frontends\1.4.0, registriert bei
Bedarf die WKL-Komponenten für den Benutzer (das Startfenster erscheint als Begrüßungsbildschirm für mindestens
splash.duration, standardmäßig 3 Sekunden, und schließt sich, sobald Access sichtbar ist), macht den Ordner zu
einem vertrauenswürdigen Speicherort und öffnet die Anwendung in Access – ohne Sicherheitswarnung. Spätere Starts öffnen
die Kopie sofort. Fehlt etwas, nennt das Fehlerfenster es mit einem Code (siehe
Fehlercodes des Starters).
Hinweise
- Rückkehr zu einer früheren Version. Solange eine neue Version Fehler hat, öffnet ein Benutzer (oder der Support)
Wkl.Bootstrapper.exe /settings, Seite Anwendung, wählt die mit „zuletzt gestartet“ markierte Version aus und wählt Diese Version starten. - Die Kopie gehört dem Benutzer. Access schreibt in die Datenbank, die es öffnet, daher wird die Kopie nur beim Ablegen gegen die Auslieferung geprüft. Neu kopieren in den Einstellungen legt sie frisch aus der Auslieferung ab.
- Kennwörter gehören nie in den Starter. INI-Werte, die wie Geheimnisse aussehen, werden abgelehnt; Verbindungen gehören zur Anwendung (Linked Tables Manager, Anwendungsmodell).
- ODBC-Treiber nur für den Benutzer. Ein nur für den Benutzer installierter Treiber (DLL im Profil, ein Benutzer-DSN, der ihn über den Pfad nennt, kein Eintrag unter
ODBCINST.INI) wird über seine Datenquelle geprüft:"odbcDataSources": [ "MyDsn" ]stattodbcDrivers(ab 1.0.1). - Bitbreite. Eine Auslieferung dient einer Bitbreite von Access, wenn sie eine ACCDE ist; siehe Access-Anwendung für 32-Bit- und 64-Bit-Office ausliefern.
- Unterstützt: 32-Bit- und 64-Bit-Office. Über eine langsame Verbindung dauert die erste Kopie entsprechend lange; währenddessen erscheint das Fortschrittsfenster.
Auch die Administrationsversion ausliefern
Das Build-Werkzeug schreibt deploy\administration neben deploy\production, wenn das Anwendungsmodell beide Modi hat.
Ein Starter startet den einen Ordner, den sein source nennt, daher erhält die Administrationsversion einen eigenen
Starter:
- Kopieren Sie
deploy\administrationin einen eigenen Ordner auf der Freigabe, zum Beispiel\\server\apps\Kunden\administration, mit den Komponenten darunter wie für die Produktion. Richten Sie einen zweiten Starterordner mit
Wkl.Bootstrapper.exeund einerbootstrapper.jsonein, derensourcediesen Ordner nennt und derenproductabweicht, zum BeispielKundenAdmin:{ "format": 1, "product": "KundenAdmin", "displayName": "Kundenverwaltung (Administration)", "source": "\\\\server\\apps\\Kunden\\administration", "components": "components" }- Geben Sie die Verknüpfung nur den Administratoren.
Die Kopien liegen je product in %LOCALAPPDATA%\WKL\<product>\Frontends\<version>. Mit demselben product und
derselben Version würden beide Auslieferungen bei jedem Start gegenseitig ihre Kopie ersetzen. Die Administrationsversion
verlangt in ihrer app-manifest.json das vollständige Access (runtime: false): Der Starter öffnet sie ohne /runtime,
und auf einem Computer, auf dem nur die Access Runtime installiert ist, hält er mit Code 22 an (siehe
Die Anwendung benötigt das vollständige Microsoft Access).
Verwandte Themen
app-manifest.jsonund das Build-Werkzeug: Dokumentation der WKL Forms Object Library (app-manifest.json, Access-Anwendung aus ihren Textquellen bauen)