Formatiert
Der Formatierte Datentyp ist eine Textzeichenfolge, die verarbeitet wird, um eingebettete Eigenschaftennamen, 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.
Wenn eine Teilzeichenfolge des Formulars [Eigenschaftenname] gefunden wird, wird sie durch den Wert der Eigenschaft ersetzt. Wenn Eigenschaftsname kein gültiger Eigenschaftsname ist, wird die Teilzeichenfolge leer aufgelöst. Die Spalte "Beschreibung" der "LaunchCondition Table" akzeptiert beispielsweise eine formatierte Zeichenfolge. Wenn ERRORTXT auf "Bitte wenden Sie sich an Ihr Supportpersonal" festgelegt wurde, enthält der Text, der angezeigt wurde, wenn die Startbedingung fehlschlägt, diese Zeichenfolge. Wenn ERRORTXT nicht festgelegt ist, lautet der text, der angezeigt wird, wenn die Startbedingung fehlschlägt, nur "System erfüllt nicht die Installationsanforderungen".
Zustand Beschreibung Version9X Das System erfüllt die Installationsanforderungen nicht. [ERRORTXT] Die eckigen Klammern können iteriert werden, und die Eigenschaftsnamen werden von innen 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.
Wenn eine Teilzeichenfolge des Formulars [%Umgebungvariable] gefunden wird, wird der Wert der Umgebungsvariablen durch die Teilzeichenfolge ersetzt.
Wenn eine Teilzeichenfolge des Formulars [\x] gefunden wird, wird sie durch das Zeichen x ersetzt, wobei x ein Zeichen ohne weitere Verarbeitung ist. Nur das erste Zeichen, nachdem der umgekehrte Schrägstrich beibehalten wurde; alles andere wird entfernt. Um beispielsweise eine literale linke Klammer ([) einzuschließen, verwenden Sie [\[]. Der Text [\[]Eckige Text[\]] wird in [Klammerntext] aufgelöst.
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 geschweifte Klammern angezeigt.
Wenn eine Teilzeichenfolge des Formulars [~] gefunden wird, wird sie durch das Nullzeichen ersetzt. Dies wird verwendet, um REG_MULTI_SZ Zeichenzeichenfolgen in der Registrierungstabellezu erstellen. Beachten Sie, dass [~] auch verwendet wird, um Umgebungsvariablen mithilfe der Environment-Tabellean Umgebungsvariablen anzufügen oder präfixieren.
Wenn eine Teilzeichenfolge des Formulars [#Filekey] gefunden wird, wird sie durch den vollständigen Pfad der Datei ersetzt, wobei der Wert Dateischlüssel als Schlüssel in der Dateitabelleverwendet wird. Der Wert von [#Filekey] bleibt leer und wird erst durch einen Pfad ersetzt, bis das Installationsprogramm die CostInitialize-Aktion, FileCost-Aktionund CostFinalize-Aktionausführt. Der Wert von [#Filekey] hängt vom Installationsstatus der Komponente ab, zu der die Datei gehört. Wenn die Komponente aus der Quelle ausgeführt wird, ist der Wert der Pfad zum Quellspeicherort der Datei. Wenn die Komponente lokal ausgeführt wird, ist der Wert der Pfad zum Zielspeicherort der Datei nach der Installation. Wenn die Komponente über einen Aktionsstatus verfügt, der nicht vorhanden ist, wird der installierte Zustand der Komponente verwendet, um das [) zu ermitteln.
Wenn eine Teilzeichenfolge des Formulars [$Componentkey] gefunden wird, wird sie durch das Installationsverzeichnis der Komponente ersetzt, wobei der Wert Componentkey als Schlüssel in der Component-Tabelleverwendet wird. Der Wert von [$componentkey] bleibt leer und wird erst durch ein Verzeichnis ersetzt, bis das Installationsprogramm die CostInitialize-Aktion, FileCost-Aktionund CostFinalize-Aktionausführt. Der Wert von [$Componentkey] hängt vom Installationsstatus der Komponente und dem Ort ab, an dem er auftritt. In der Spalte "Wert" der Registrierungstabellekann 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 beispielsweise aus der Quelle ausgeführt wird, ist der Wert das Quellverzeichnis der Datei. Wenn die Komponente lokal ausgeführt wird, ist der Wert das Zielverzeichnis nach der Installation. Wenn die Komponente nicht vorhanden ist, bleibt der Wert leer. Windows Installer verfolgt sowohl die Aktion als auch die angeforderten Installationszustände von Komponenten. Wenn beispielsweise eine Komponente bereits installiert ist, kann sie den angeforderten Status "lokal" und den Aktionszustand null aufweisen. Weitere Informationen zum Überprüfen des Installationsstatus von Komponenten finden Sie unter Überprüfen der Installation von Features, Komponenten, Dateien.
Beachten Sie, dass, wenn eine Komponente bereits installiert ist und während der aktuellen Installation nicht neu installiert, entfernt oder verschoben wird, der Aktionsstatus der Komponente null ist und die Zeichenfolge [$Componentkey] als Null ausgewertet wird.
Wenn eine Teilzeichenfolge des Formulars [!Filekey] gefunden wird, wird sie durch den vollständigen kurzen Pfad der Datei ersetzt, wobei der Wert Filekey als Schlüssel in der Dateitabelleverwendet wird.
Diese Syntax ist nur gültig, wenn sie in der Spalte "Wert" der Registrierungs- oder in den IniFile-Tabellen verwendet wird. Bei Verwendung in anderen Spalten wird diese Syntax mit [#Filekey] behandelt.