Formattazione

Il tipo di dati formattato è una stringa di testo elaborata per risolvere nomi di proprietà incorporati, chiavi di tabella, riferimenti a variabili di ambiente e altre sottostringhe speciali. Per risolvere la stringa vengono riconosciute le convenzioni seguenti:

  • Le parentesi quadre ([ ]) o le parentesi graffe ({ }) senza coppia corrispondente vengono lasciate nel testo.

  • Se viene rilevata una sottostringa del formato [nomeproprietà], viene sostituita dal valore della proprietà . Se propertyname non è un nome di proprietà valido, la sottostringa viene risolta come vuota. Ad esempio, la colonna Description della tabella LaunchCondition accetta una stringa formattata. Se ERRORTXT è stato impostato su "Per favore contattare il personale di supporto", il testo visualizzato per l'esito negativo della condizione di avvio includerà questa stringa. Se ERRORTXT non è impostato, il testo visualizzato per l'esito negativo della condizione di avvio sarebbe semplicemente "Il sistema non soddisfa i requisiti di installazione".

    Condizione Descrizione
    Versione9X Il sistema non soddisfa i requisiti di installazione. [ERRORTXT]

     

  • Le parentesi quadre possono essere iterate e i nomi delle proprietà vengono risolti dall'interno. Si supponga, ad esempio, che la sottostringa [[PropertyA]] venga visualizzata nel testo. Innanzitutto, viene recuperato il valore della proprietà PropertyA. Se il valore è un nome di proprietà valido, ad esempio PropertyB, viene recuperato il valore di PropertyB e l'intera sottostringa [[PropertyA]] viene sostituita con il valore di PropertyB. Se PropertyA non è un nome di proprietà valido o se il valore di PropertyA non è un nome di proprietà valido, la sottostringa è vuota.

  • Se viene trovata una sottostringa del formato [%environmentvariable], il valore della variabile di ambiente viene sostituito dalla sottostringa.

  • Se viene trovata una sottostringa del formato [\x], viene sostituita dal carattere x , dove x è un carattere, senza ulteriori elaborazioni. Solo il primo carattere dopo la barra rovesciata viene mantenuto; tutto il resto viene rimosso. Ad esempio, per includere una parentesi letterale a sinistra ([), usare [\[]. Il testo [\[]Testo tra parentesi quadre[\]] viene risolto in [Testo tra parentesi quadre].

  • Se una sottostringa è racchiusa tra parentesi graffe ({ }) e non contiene nomi di proprietà racchiusi tra parentesi quadre ([ ]), la sottostringa viene lasciata invariata, incluse le parentesi graffe.

  • Se una sottostringa è racchiusa tra parentesi graffe ({ }) e contiene uno o più nomi di proprietà racchiusi tra parentesi quadre ([ ]), se tutti i nomi delle proprietà sono validi, il testo (con le sostituzioni risolte) viene visualizzato senza parentesi graffe.

  • Se viene trovata una sottostringa del formato [~], viene sostituita con il carattere Null. Viene usato per creare REG_MULTI_SZ stringhe di caratteri nella tabella Del Registro di sistema. Si noti che [~] viene usato anche per aggiungere o anteporre valori alle variabili di ambiente usando la tabella Environment.

  • Se viene trovata una sottostringa del formato [#filekey], viene sostituita dal percorso completo del file, con la chiave filekey valore usata come chiave nella tabella File. Il valore di [#filekey] rimane vuoto e non viene sostituito da un percorso finché il programma di installazione non esegue l'azione CostInitialize, l'azione FileCost e CostFinalize. Il valore di [#filekey] dipende dallo stato di installazione del componente a cui appartiene il file. Se il componente viene eseguito dall'origine, il valore è il percorso del percorso di origine del file. Se il componente viene eseguito in locale, il valore è il percorso del percorso di destinazione del file dopo l'installazione. Se il componente ha uno stato di azione assente, lo stato installato del componente viene usato per determinare [).

  • Se viene trovata una sottostringa del modulo [$componentkey], viene sostituita dalla directory di installazione del componente, con la chiave del componente valore usata come chiave nella tabella Component. Il valore di [$componentkey] rimane vuoto e non viene sostituito da una directory finché il programma di installazione non esegue l'azione CostInitialize, l'azione FileCost e CostFinalize. Il valore di [$componentkey] dipende dallo stato di installazione del componente e dalla posizione in cui si verifica. Nella colonna Valore della tabella del Registro di sistema questa sottostringa può fare riferimento allo stato dell'azione o allo stato dell'azione richiesto del componente. In tutti gli altri casi, questa sottostringa fa riferimento allo stato dell'azione del componente. Ad esempio, se il componente viene eseguito dall'origine, il valore è la directory di origine del file. Se il componente viene eseguito in locale, il valore è la directory di destinazione dopo l'installazione. Se il componente è assente, il valore viene lasciato vuoto. Windows Installer tiene traccia sia dell'azione che degli stati di installazione richiesti dei componenti. Ad esempio, se un componente è già installato, potrebbe avere uno stato richiesto locale e uno stato di azione null. Per altre informazioni sul controllo dello stato di installazione dei componenti, vedere Controllo dell'installazione di funzionalità, componenti, file.

  • Si noti che se un componente è già installato e non viene reinstallato, rimosso o spostato durante l'installazione corrente, lo stato dell'azione del componente è Null e la stringa [$componentkey] restituisce Null.

  • Se una sottostringa del formato [! filekey] viene trovato, viene sostituito dal percorso breve completo del file, con la chiave filekey del valore usata come chiave nella tabella File.

    Questa sintassi è valida solo se utilizzata nella colonna Value del Registro di sistema o nelle tabelle IniFile. Se utilizzata in altre colonne, questa sintassi viene considerata uguale a [#filekey] .