Farbschema: Dunkel
Sie befinden sich hier: start » de » Dokumentation » Werkzeuge für Microsoft Access » WKL Bootstrapper » Referenz » Die Installer-Einstellungen (<name>.msi.json)

Die Installer-Einstellungen (<name>.msi.json)

Die Installer-Einstellungen beschreiben das Windows-Installer-Paket (MSI), das die IT einmal installiert und das den Starter auf einem Computer ablegt: die Daten des Pakets, ob es je Computer und/oder je Benutzer installiert, die Dialoge, die die installierende Person sieht, und deren Texte je Sprache. Sie liegen neben der Projektdatei und werden nur beim Bau des MSI gelesen; der Starter liest sie nie, wenn er startet, und sie gelangen nie über eine Auslieferung auf die PCs der Benutzer.

Voraussetzungen: WKL Bootstrapper 2.3.0 oder höher. /check prüft die Datei, /msi-sources schreibt daraus die WiX-Quellen, und tools/New-StarterMsi.ps1 baut die Pakete.

Wo die Datei liegt

Die Datei ist nach der Projektdatei benannt und liegt im selben Ordner:

ProjektdateiInstaller-Einstellungen
demo.bootstrapper.json (die nach demo.exe benannte Projektdatei)demo.msi.json
bootstrapper.jsonbootstrapper.msi.json
kasse.json (mit /RUNCFG genannt)kasse.msi.json

Pfade in der Datei (Symbol, Lizenz, Banner, Dialogbild, Fragmente) sind relativ zum Ordner der Datei und dürfen ihn nicht verlassen (..).

Was gebaut wird

tools\New-StarterMsi.ps1 -Project <project file> baut ein Paket je Bereich und Sprache:

EinstellungenPakete
Keine <name>.msi.json<product>-<version>.msi: je Computer, Englisch, ohne Dialoge – das Paket der Releases vor 2.3.0
Ein Bereich, eine Sprache<product>-<version>.msi
Mehrere Bereiche oder Sprachen<product>-<version>-<scope>-<culture>.msi, zum Beispiel Demo-1.2.0-user-de-DE.msi

Die WiX-Quellen bleiben in <output folder>\<product>.wix (machine.wxs, user.wxs, ui.wxs, eine .wxl je Kultur), wo sie sich lesen oder von Hand bauen lassen; -SourcesOnly schreibt nur sie. Das Paket je Computer behält den Upgradecode der vor 2.3.0 gebauten Pakete, sodass ein neues Paket ein altes ersetzt; das Paket je Benutzer hat einen eigenen Code, sodass sich die beiden nie gegenseitig ersetzen.

Was das Paket tut und was nicht

Das Paket legt den Starter, seine Projektdatei, die INI-Datei der Dialogwerte und das Logo ab und erstellt die Verknüpfungen. Alles je Benutzer – die Anwendung kopieren, Komponenten, vertrauenswürdiger Speicherort, Start – bleibt Aufgabe des Starters bei jedem Start (siehe Der Installer). Werte, die auf einer eigenen Seite eingegeben werden, werden in die INI-Datei neben dem Starter geschrieben, wo die Anwendung sie liest; der Starter selbst wertet sie nicht aus.

Beispiel

{
  "format": 1,
  "package": { "name": "Demo", "manufacturer": "Contoso", "license": "installer\\license.rtf", "banner": "installer\\banner.png" },
  "scopes": [ "machine", "user" ],
  "shortcuts": { "startMenu": true, "desktop": true },
  "languages": [ "de-DE", "en-US" ],
  "texts": { "de-DE": { "WelcomeDlgTitle": "Willkommen bei Demo" } },
  "dialogs": { "install": [ "welcome", "license", "folder", "page:server", "verify" ], "exit": { "launch": true } },
  "pages": [
    { "id": "server", "title": { "de-DE": "Datendienst", "en-US": "Data service" }, "description": "URL",
      "controls": [
        { "type": "text", "label": "Where the application finds its data." },
        { "type": "edit", "property": "SERVER", "label": "URL", "default": "https://", "required": true, "maxLength": 200 },
        { "type": "radio", "property": "MODE", "label": "Mode", "default": "live",
          "options": [ { "value": "live", "text": "Live" }, { "value": "test", "text": "Test" } ] }
      ] }
  ],
  // The values go to demo.ini beside demo.exe, section [Settings].
  "ini": { "section": "Settings" },
  "fragments": [ "installer\\extra.wxs" ]
}

Kommentare (//) und nachgestellte Kommas sind erlaubt. Unbekannte Schlüssel werden abgelehnt, damit ein falsch geschriebener Schlüssel nie ein Paket baut, dem stillschweigend ein Dialog fehlt.

Wie die Werte zur Anwendung gelangen

  • Jeder Wert einer eigenen Seite wird in die INI-Datei neben dem Starter geschrieben (demo.ini neben demo.exe, Abschnitt [Settings]): KEY=value, ein Kontrollkästchen als 1 oder 0. Die Anwendung liest die Datei, der Starter nicht. Damit die Anwendung weiß, wo die Datei liegt, übergeben Sie ihren Pfad in start.environment des Projekts, zum Beispiel "WKL_SETTINGS": "[StarterDir]\[StarterName].ini" (siehe Die Projektdatei); die Anwendung liest Environ("WKL_SETTINGS").
  • Die IT kann jeden Wert ohne Dialoge in der Befehlszeile setzen, mit dem Namen der Eigenschaft: msiexec /i Demo-1.2.0-machine-de-DE.msi /qn SERVER=https://data.company.com MODE=test LOGGING=0. 0 leert ein Kontrollkästchen.
  • Die Werte werden gespeichert (HKEY_LOCAL_MACHINE je Computer, HKEY_CURRENT_USER je Benutzer, Schlüssel Software\WKL\Starter\<product>\Settings). Ein späteres „Ändern“ aus dem Wartungsdialog oder aus „Apps“ geht von ihnen aus und schreibt die INI-Datei neu; eine Reparatur behält sie.
  • Reihenfolge: Ein Wert aus der Befehlszeile hat Vorrang vor dem gespeicherten, der gespeicherte vor dem Standardwert.

Texte in mehreren Sprachen

Jeder Text, den die installierende Person liest (title, description, label, hint, text einer Option, launchText), wird entweder als eine Zeichenfolge geschrieben, die für jede Sprache gilt, oder als Objekt mit einer Zeichenfolge je Kultur:

"title": "Server"
"title": { "de-DE": "Datendienst", "en-US": "Data service" }

Eine Kultur ohne eigenen Text erhält die Zeichenfolge für jede Sprache, sonst bleibt sie leer.

Schlüssel

SchlüsselStandardBedeutung
format-Immer 1.
package.namedisplay.name der ProjektdateiDer Name unter „Apps“ und in den Dialogen.
package.manufacturerdisplay.publisher der ProjektdateiDer Herausgeber.
package.versionProduktversion des StartersZwei oder drei Zahlen; Windows Installer vergleicht nur die ersten drei.
package.upgradeCodeeine Namens-GUID aus Produkt und BereichDer Upgradecode; der Standard bleibt über Builds hinweg gleich. Setzen Sie ihn nur, um ein früher gebautes Paket zu übernehmen.
package.iconkeinesEine .ico-Datei für den Eintrag unter „Apps“.
package.licensekeineEine .rtf-Datei, die der Dialog license zeigt.
package.bannerdas WiX-Banner.bmp oder .png, 493 × 58 Pixel, oben in den Dialogen.
package.dialogImagedas WiX-Bild.bmp oder .png, 493 × 312 Pixel, im Willkommens- und im Abschlussdialog.
scopes[ "machine" ]machine (je Computer, die IT installiert mit Administratorrechten) und/oder user (je Benutzer, ohne). Ein Paket je Bereich, jedes mit eigenem Upgradecode.
installFolder.machine[ProgramFilesFolder]WKL\<product>Der Installationsordner je Computer: [ProgramFilesFolder] oder [CommonAppDataFolder], dann der Pfad darunter. Im Dialog folder kann die installierende Person einen anderen wählen.
installFolder.user[LocalAppDataFolder]Programs\WKL\<product>Der Installationsordner je Benutzer: [LocalAppDataFolder] oder [AppDataFolder], dann der Pfad darunter.
shortcuts.startMenutrueEine Verknüpfung im Startmenü (für alle Benutzer bei je Computer, für den Benutzer bei je Benutzer).
shortcuts.desktopfalseEine Verknüpfung auf dem Desktop.
shortcuts.namepackage.nameDer Name der Verknüpfungen.
languages[ "en-US" ]Die Kulturen, für die das Paket gebaut wird: en-US, de-DE, sl-SI, hr-HR, it-IT. Die erste ist der Standard.
textskeineZu ersetzende Texte der Standarddialoge, je Kultur: die WiX-Lokalisierungs-ID (zum Beispiel WelcomeDlgTitle) und der Text, geschrieben, wie WiX ihn schreibt: [Name] ist eine Eigenschaft, {\WixUI_Font_Title} eine Schriftart. Nur Kulturen aus languages.
dialogs.install[ "welcome", "verify" ]Die Dialoge einer Installation in ihrer Reihenfolge: welcome zuerst, dann license, folder und page:<id> in beliebiger Reihenfolge und verify zuletzt. Fortschritt und Abschlussdialog folgen immer.
dialogs.changeShowsPagestrue„Ändern“ im Wartungsdialog führt erneut durch die eigenen Seiten, sodass sich deren Werte später ändern lassen.
dialogs.exit.launchfalseEin Kontrollkästchen im Abschlussdialog, das nach einer neuen Installation den Starter startet.
dialogs.exit.launchText„<name> jetzt starten“ in einem deutschen Paket, sonst „Start <name>“Der Text dieses Kontrollkästchens.
pageskeineDie eigenen Seiten (siehe unten).
ini.file<starter name>.iniDer Dateiname der INI-Datei neben dem Starter (demo.ini neben demo.exe).
ini.sectionSettingsDer Abschnitt, in den die Werte geschrieben werden.
fragmentskeineWiX-Quelldateien (.wxs) des Herausgebers, die in den Build einbezogen werden. Jede Komponente, Komponentengruppe, Eigenschaft, UI und benutzerdefinierte Aktion, die ein Fragment direkt in einem <Fragment> definiert, wird referenziert, daher genügt es, die Datei zu nennen.

Eigene Seiten

Eine eigene Seite erscheint im Rahmen der Standarddialoge (Banner mit Titel und Beschreibung, Zurück/Weiter/Abbrechen) und enthält Steuerelemente von oben nach unten.

Schlüssel einer SeiteBedeutung
idBuchstaben und Ziffern, beginnend mit einem Buchstaben, eindeutig; angezeigt mit page:<id> in dialogs.install.
titleDer Titel im Banner (erforderlich).
descriptionDie Zeile unter dem Titel.
controlsDie Steuerelemente (mindestens eines).
Schlüssel eines SteuerelementsBedeutung
typetext (ein Absatz), edit, checkbox, radio, combo oder folder (ein Pfad, der in ein Eingabefeld getippt wird; der Durchsuchen-Dialog von Windows Installer dient nur dem Installationsordner).
propertyDie öffentliche Eigenschaft, die den Wert enthält: Großbuchstaben, Ziffern und _, beginnend mit einem Buchstaben. Die IT kann sie in der Befehlszeile setzen (msiexec /i demo.msi SERVER=https://...). Nicht für text.
labelDie Beschriftung über dem Steuerelement; bei text der Absatz selbst; bei checkbox der Text neben dem Kästchen. Klammern werden so angezeigt, wie sie geschrieben sind.
hintEin Hinweis unter dem Steuerelement in kleinerer Schrift.
defaultDer Wert, bevor die installierende Person ihn ändert; bei checkbox 1 oder leer, bei radio und combo eine der Optionen.
requiredtrue lässt „Weiter“ deaktiviert, solange der Wert leer ist.
maxLengthDer längste Wert eines edit; 0 für keine Grenze.
optionsDie Auswahlmöglichkeiten von radio und combo: value (gespeichert) und text (angezeigt).
iniKeyDer Schlüssel in der INI-Datei; leer für den Namen der Eigenschaft.

Regeln

Der Starter prüft diese Regeln mit /check <name>.msi.json (Exitcode 0 gültig, 11 Probleme; /json listet jedes Problem für den Bootstrapper Manager auf). Die erste verletzte Regel wird mit dem genannt, was sie verletzt:

  • scopes nennt machine und/oder user, jedes einmal.
  • dialogs.install beginnt mit welcome und endet mit verify, jedes einmal, und zeigt keinen Standarddialog zweimal: Die installierende Person bestätigt, bevor sich etwas ändert.
  • installFolder beginnt mit einem Standardordner seines Bereichs (siehe die Schlüssel) und hat einen Pfad darunter.
  • Jede Seite aus pages wird in dialogs.install angezeigt, und jedes page:<id> nennt eine Seite.
  • license in dialogs.install erfordert package.license.
  • Eigenschaften sind in Großbuchstaben geschrieben und werden einmal verwendet.
  • Eine Eigenschaft oder ein INI-Schlüssel, der wie ein Kennwort aussieht (pass, pwd, secret, token, kennwort), wird abgelehnt: Die INI-Datei neben dem Starter ist für jeden Benutzer des Computers lesbar. Geheimnisse gehören in die eigene Anmeldung der Anwendung.
  • Der Standard von radio und combo ist eine der Optionen; der Standard von checkbox ist 1 oder leer.
  • maxLength gilt nur für edit.
  • languages nennt nur Kulturen aus der Liste; texts nur Kulturen aus languages.
  • package.version besteht aus zwei oder drei Zahlen, package.upgradeCode ist eine GUID.
  • Dateien haben die richtige Endung (.ico, .rtf, .bmp/.png, .wxs), sind relativ und ohne ..; ist die Datei gültig, nennt /check außerdem jede Datei, die daneben fehlt.
  • ini.file ist ein bloßer Dateiname, der auf .ini endet; ini.section hat keine Klammern.
  • Unbekannte Schlüssel werden abgelehnt.
  • Der Bau der Quellen (/msi-sources) lehnt eine eigene Seite ab, deren Steuerelemente nicht in jeder Sprache in den Dialog passen; er nennt, wie viele Dialogeinheiten die Seite braucht. Teilen Sie sie auf zwei Seiten auf oder kürzen Sie die Texte.

Verwandte Themen

de/wiki/msaccess/bootstrapper/reference/msi-settings.txt · Zuletzt geändert: von Wolfgang van der Stille