Domanda

Sto creando un programma di installazione utilizzando InnoSetup , e la scrittura di alcuni gestori personalizzati in una sezione [Code] . In uno dei gestori, vorrei essere in grado di recuperare il valore del AppName (o, potenzialmente, il valore di altri parametri) definito nella sezione [Setup]. C'è un modo per me di fare questo? Ho guardato anche se il , ma non ho trovato nulla che mi permettesse di fare questo . I nostri file InnoSetup sono in realtà generati dal nostro processo di generazione, che cuce insieme i frammenti che sono comuni tra tutti i nostri programmi e che sono programma specifico, quindi sarebbe scomodo dover definire costanti nel codice per ogni programma. Esiste un modo conveniente per fare questo?

Sto cercando qualcosa di simile

MyString := ExpandConstant('{AppName}');

Ad eccezione {AppName} non è una costante definita. C'è qualche modo per interrogare per i parametri definiti nella sezione [Setup]?

È stato utile?

Soluzione

E 'un costante accumulo di tempo, non un valore al momento dell'installazione. Quindi è possibile utilizzare il Inno Setup preprocessore add-on per definire tali costanti. (È possibile installarlo facilmente tramite il QuickStart pacchetto ).

Definisci la costante:

#define AppName "Excellent Foo App"

Con la costante in [Setup]:

AppName={#AppName}

E nel codice Pascal, non sono del tutto sicuro della sintassi, ma qualcosa di simile:

MyString := {#AppName}

Aggiornamento: ho realizzato uno dei miei script utilizza {#emit SetupSetting("AppId")} che è più facile. soluzione di Brian anche scoperto questo metodo, ed è meglio.

Altri suggerimenti

Ispirato dalla risposta di Craig, stavo guardando la documentazione di installazione preprocessore Inno (in ISTool, non disponibile on-line, per quanto ho trovato), e mi sono imbattuto la funzione SetupSetting nel preprocessore.

Può essere usato come:

MyString := '{#SetupSetting("AppName")}';

E finché la sezione [Setup] appare prima il luogo in cui questo è usato (ISPP sembra essere solo un passaggio), e include una definizione per AppName, questo darà i risultati che voglio, senza dover definire una macro in più per ogni impostazione vogliamo estrarre.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top