Formatiert

Der Datentyp „Formatted“ ist eine Textzeichenfolge, die verarbeitet wird, um eingebettete Eigenschaftsnamen, Tabellenschlüssel, Umgebungsvariablenverweise und andere spezielle Teilzeichenfolgen aufzulösen. Die folgenden Konventionen werden erkannt, um die Zeichenfolge aufzulösen:

  • Eckige Klammern ([ ]) oder geschweifte Klammern ({ }) ohne übereinstimmende Paare bleiben im Text erhalten.

  • Wird eine Teilzeichenfolge im Format [Eigenschaftsname] gefunden, wird diese durch den Wert der Eigenschaft ersetzt. Wenn Eigenschaftsname kein gültiger Eigenschaftsname ist, wird die Teilzeichenfolge als leer aufgelöst. Die Spalte „Description“ der LaunchCondition-Tabelle verwendet beispielsweise eine formatierte Zeichenfolge. Wenn ERRORTXT auf „Wenden Sie sich an Ihre Supportmitarbeiter“ festgelegt wurde, enthält der Text, der für einen Fehler bei der Startbedingung angezeigt wird, diese Zeichenfolge. Wenn ERRORTXT nicht festgelegt ist, lautet der Text, der für einen Fehler bei der Startbedingung angezeigt wird, nur „Das System erfüllt die Installationsanforderungen nicht“.

    Bedingung BESCHREIBUNG
    Version9X Das System erfüllt die Installationsanforderungen nicht. [ERRORTXT]

     

  • Die eckigen Klammern können durchlaufen werden, und die Eigenschaftsnamen werden von innen heraus aufgelöst. Angenommen, die Teilzeichenfolge [[PropertyA]] wird im Text angezeigt. Zuerst wird der Wert der Eigenschaft „PropertyA“ abgerufen. Wenn der Wert ein gültiger Eigenschaftsname ist, z. B. „PropertyB“, wird der Wert von „PropertyB“ abgerufen, und die gesamte Teilzeichenfolge [[PropertyA]] wird durch den Wert von „PropertyB“ ersetzt. Wenn „PropertyA“ kein gültiger Eigenschaftsname ist oder der Wert von „PropertyA“ kein gültiger Eigenschaftsname ist, ist die Teilzeichenfolge leer.

  • Wird eine Teilzeichenfolge im Format [%Umgebungsvariable] gefunden, wird die Teilzeichenfolge durch die Umgebungsvariable ersetzt.

  • Wird eine Teilzeichenfolge des Formats [\x] gefunden, wird diese ohne weitere Verarbeitung durch das Zeichen x ersetzt, wobei x für ein Zeichen steht. Nur das erste Zeichen nach dem umgekehrten Schrägstrich wird beibehalten, alle übrigen werden entfernt. Um beispielsweise eine linke eckige Klammer ([) zu verwenden, müssen Sie dies schreiben: [\[]. Der Text [\[]Klammertext[\]] wird als [Klammertext] angezeigt.

  • Wenn eine Teilzeichenfolge in geschweifte Klammern ({ }) eingeschlossen ist und keine Eigenschaftsnamen enthält, die in eckigen Klammern ([ ]) eingeschlossen sind, bleibt die Teilzeichenfolge unverändert, einschließlich der geschweiften Klammern.

  • Wenn eine Teilzeichenfolge in geschweifte Klammern ({ }) eingeschlossen ist und einen oder mehrere Eigenschaftsnamen enthält, die in eckigen Klammern ([ ]) eingeschlossen sind, wird der Text (mit den aufgelösten Ersetzungen) ohne die geschweiften Klammern angezeigt, sofern alle Eigenschaftsnamen gültig sind.

  • Wenn eine Teilzeichenfolge der Form [~] gefunden wird, wird sie durch das NULL-Zeichen ersetzt. Dies wird verwendet, um REG_MULTI_SZ-Zeichenfolgen in der Registry-Tabelle zu erstellen. Beachten Sie, dass [~] auch verwendet werden kann, um Werte mithilfe der Environment-Tabelle vorne oder hinten an Umgebungsvariablen anzuhängen.

  • Wird eine Teilzeichenfolge im Format „[#filekey]“ gefunden, wird diese durch den vollständigen Pfad der Datei ersetzt, wobei der Wert filekey als Schlüssel in der File-Tabelle verwendet wird. Der Wert von „[#filekey]“ bleibt leer und wird erst durch einen Pfad ersetzt, wenn der Installer die Aktionen CostInitialize, FileCost und CostFinalize ausführt. Der Wert von „[#filekey]“ hängt vom Installationsstatus der Komponente ab, zu der die Datei gehört. Wenn die Komponente von der Quelle aus ausgeführt wird, entspricht der Wert dem Pfad zum Quellspeicherort der Datei. Wenn die Komponente lokal ausgeführt wird, entspricht der Wert dem Pfad zum Zielspeicherort der Datei nach der Installation. Wenn die Komponente den Aktionsstatus „Nicht vorhanden“ aufweist, wird der installierte Zustand der Komponente verwendet, um [) zu bestimmen.

  • Wird eine Teilzeichenfolge im Format „[$componentkey]“ gefunden, wird sie durch das Installationsverzeichnis der Komponente ersetzt. Hierbei wird der Wert componentkey als Schlüssel in der Component-Tabelle verwendet. Der Wert von „[$componentkey]“ bleibt leer und wird erst durch ein Verzeichnis ersetzt, wenn der Installer die Aktionen CostInitialize, FileCost und CostFinalize ausführt. Der Wert von „[$componentkey]“ hängt vom Installationszustand der Komponente ab und davon, wo sie auftritt. In der Spalte „Value“ der Registry-Tabelle kann diese Teilzeichenfolge auf den Aktionsstatus oder den angeforderten Aktionsstatus der Komponente verweisen. In allen anderen Fällen bezieht sich diese Teilzeichenfolge auf den Aktionszustand der Komponente. Wenn die Komponente z. B. von der Quelle aus ausgeführt wird, entspricht der Wert dem Quellverzeichnis der Datei. Wenn die Komponente lokal ausgeführt wird, entspricht der Wert dem Zielverzeichnis nach der Installation. Wenn die Komponente nicht vorhanden ist, bleibt der Wert leer. Windows Installer verfolgt sowohl den Aktions- als auch den angeforderten Installationsstatus von Komponenten nach. Wenn eine Komponente beispielsweise bereits installiert ist, kann sie den angeforderten Status „local“ und den Aktionszustand NULL aufweisen. Weitere Informationen zum Überprüfen des Installationszustands von Komponenten finden Sie unter Überprüfen der Installation von Features, Komponenten und Dateien.

  • Wenn eine Komponente bereits installiert ist und während der aktuellen Installation nicht neu installiert, entfernt oder verschoben wird, ist der Aktionszustand der Komponente NULL, und die Zeichenfolge [$componentkey] wird zu Null ausgewertet.

  • Wird eine Teilzeichenfolge im Format „[!filekey]“ gefunden, wird diese durch den vollständigen kurzen Pfad der Datei ersetzt, wobei der Wert filekey als Schlüssel in der File-Tabelle verwendet wird.

    Diese Syntax ist nur gültig, wenn sie in der Spalte „Value“ der Registry- oder IniFile-Tabelle verwendet wird. Bei Verwendung in anderen Spalten wird diese Syntax genauso behandelt wie [#filekey].