Build-Konfiguration und Auslieferungsprofil
graph LR P[Projektdatei .acproj] --> K[Build-Konfiguration] K --> M[Modus des Anwendungsmodells] K --> V[Verbindungsprofil] K --> O["Ausgabeordner build\Konfiguration"] A[Auslieferungsprofil] -->|wird gebaut in| K A --> L["Auslieferungsordner build\Delivery\Profil"] A --> S[Starter]
Warum gibt es zwei Begriffe für scheinbar dasselbe? Weil Bauen und Ausliefern zwei Fragen beantworten. Die Build-Konfiguration legt fest, wie die Datenbank gebaut wird. Das Auslieferungsprofil legt fest, was an wen geht und wohin. Visual Studio trennt genauso: Die Konfiguration (Debug, Release) bestimmt den Build, ein Veröffentlichungsprofil bestimmt, wohin und wie veröffentlicht wird. Ein Profil wird immer in einer Konfiguration gebaut, eine Konfiguration dient aber auch ohne Profil, etwa zum Entwickeln mit Debug.
Wichtige Punkte
- Eine Build-Konfiguration gehört zur Projektdatei. Sie bestimmt, ob eine ACCDE entsteht, welchen Modus das Anwendungsmodell bekommt und mit welchem Verbindungsprofil Tabellen verknüpft werden. Ihre Datenbank liegt in ihrem Ausgabeordner
<BaseOutputPath>\<configuration>. - Ein Auslieferungsprofil ist eine eigene Datei
delivery\<name>.profile.json. Es nennt die Konfiguration, in der es gebaut wird, den Auslieferungsordner, den Starter und ob es für die Access Runtime bestimmt ist. Ohne eigenen Auslieferungsordner liegt seine Auslieferung in<BaseOutputPath>\Delivery\<name>, mit dem Namen in Kleinbuchstaben. - Der Modus (Development, Administration, Production) ist eine Eigenschaft der Konfiguration. Ein Profil liefert die Anwendung im Modus seiner Konfiguration aus; mehrere Profile dürfen denselben Modus haben.
- Was alle Profile teilen, die Version und die Release-Pakete, steht einmal in
delivery\delivery-settings.json.
Wie die Begriffe zusammenhängen
Build-Konfiguration
Debug und Release gibt es in jedem Projekt; weitere Konfigurationen nennt die Projektdatei in Configurations oder
in einer eigenen Eigenschaftsgruppe (Projektdatei). Eine Konfiguration setzt drei
Werte; einen Wert, den sie nicht setzt, übernimmt sie vom Projekt:
| Wert | Bedeutung |
|---|---|
Accde | Ob der Build neben der ACCDB eine ACCDE erzeugt. |
AppMode | Der Modus des Anwendungsmodells der WKL Forms Object Library; der Build schreibt dessen Starteigenschaften in die ACCDE. |
ConnectionProfile | Das Verbindungsprofil des WKL Linked Tables Manager, mit dem der Build Tabellen verknüpft. |
Welche Konfiguration gebaut wird, wählen Sie auf der Befehlszeile mit --configuration (Vorgabe Debug) oder im
Add-In im Auswahlfeld Konfiguration; Erstellen und neu öffnen, Neu erstellen und neu öffnen und
Validieren arbeiten dann mit dieser Konfiguration.
Auslieferungsprofil
Ein Profil beantwortet, was eine Auslieferung enthält: die Datenbank aus seiner Konfiguration, ihr Manifest, die
WKL-Bibliotheken und den Starter mit seiner Projektdatei delivery\<name>.bootstrapper.json. deliver baut jedes
Profil in seiner Konfiguration und schreibt das Ergebnis in den Auslieferungsordner des Profils; deliver -p <name>
liefert ein einzelnes Profil aus (delivery-settings.json).
Ein Profil braucht eine Konfiguration mit Modus, denn der Modus entscheidet, was ausgeliefert wird: Development liefert
eine ACCDB, Administration und Production eine ACCDE, gleich was Accde der Konfiguration sagt. Ein Profil mit
bitness: any liefert in jedem Modus eine ACCDB, die in 32- und 64-Bit-Office läuft
(delivery-settings.json).
Beispiel: zwei Kunden
Zwei Kunden bekommen dieselbe Anwendung, jeder mit eigener Datenbankverbindung. Dafür gibt es zwei Konfigurationen mit dem Modus Production und je eigenem Verbindungsprofil sowie zwei Profile, die je eine davon bauen:
| Profil | Konfiguration | Modus | Verbindungsprofil | Auslieferungsordner |
|---|---|---|---|---|
| Kunde A | KundeA | Production | PROD-A | build\Delivery\kunde a |
| Kunde B | KundeB | Production | PROD-B | build\Delivery\kunde b |
Zum Entwickeln bauen Sie weiter Debug; diese Konfiguration braucht kein Profil.
Wer was festlegt
- Projektdatei: die Konfigurationen und ihre Werte. Im Add-In bearbeiten Sie sie in den Projekteigenschaften (Access-Add-In verwenden).
- Profildateien und
delivery-settings.json: die Auslieferung, ebenfalls in den Projekteigenschaften oder von Hand (Anwendung aus dem SDK ausliefern). - SDK-Einstellungen: nur die Vorgaben für neue Projekte, etwa welche Konfigurationen sie bekommen (SDK-Einstellungen); bestehende Projekte ändern sie nicht.
Ältere Auslieferungen (Format 1)
Eine delivery-settings.json im Format 1 nennt je Modus ein Ziel statt Profilen. Sie gilt weiter: Jedes Ziel wird als
Profil mit dem Namen seines Modus gelesen. Sobald Sie die Auslieferung in den Projekteigenschaften ändern, schreibt das
Add-In sie im Format 2 (Format 1 und Format 2).
Verwandte Themen
- Projektordner – welche Datei wo liegt und was versioniert wird
- Projektdatei – Konfigurationen und ihre Eigenschaften
- delivery-settings.json – Profile und gemeinsame Einstellungen