Pergunta

Estou criando um instalador usando Innostup, e escrever alguns manipuladores personalizados em um [Code] seção. Em um dos manipuladores, eu gostaria de poder recuperar o valor do AppName (ou, potencialmente, o valor de outros parâmetros) definido no [Setup] seção. Existe uma maneira de eu fazer isso? Eu olhei embora o documentação, mas não encontrei nada que me permitisse fazer isso. Nossos arquivos Innostup são realmente gerados pelo nosso processo de construção, que costura fragmentos comuns entre todos os nossos programas e que são específicos do programa, por isso seria inconveniente ter que definir constantes no código para cada programa. Existe alguma maneira conveniente de fazer isso?

Estou procurando algo como

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

Exceto {AppName} não é uma constante definida. Existe alguma maneira de consultar os parâmetros definidos no [Setup] seção?

Foi útil?

Solução

É uma constante de tempo de construção, não um valor de tempo de instalação. Então você pode usar o PROCESSOR DE CONFIGURAÇÃO INNO complemento para definir essas constantes. (Você pode instalá -lo facilmente através do Pacote QuickStart).

Defina a constante:

#define AppName "Excellent Foo App"

Use a constante em [Setup]:

AppName={#AppName}

E no código Pascal, não tenho certeza da sintaxe, mas algo como:

MyString := {#AppName}

Atualizar: Eu percebi que um dos meus scripts usa {#emit SetupSetting("AppId")} o que é mais fácil. Solução de Brian Também descobri esse método e é melhor.

Outras dicas

Inspirado pela resposta de Craig, eu estava olhando para a documentação do pré -processador da Inno Setup (no ISTool, não disponível on -line, tanto quanto eu encontrei), e me deparei com o SetupSetting função no pré -processador.

Pode ser usado como assim:

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

E enquanto o [Setup] A seção aparece antes do local onde isso é usado (o ISPP parece ser apenas um passe) e inclui uma definição para AppName, isso fornecerá os resultados que eu quero, sem precisar definir uma macro extra para cada configuração que queremos extrair.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top