tutorial setup inno descargar installer inno-setup pascalscript

installer - tutorial - inno setup descargar



InnoSetup: Obtener AppName en la sección (2)

Estoy creando un instalador usando InnoSetup y escribiendo algunos manejadores personalizados en una sección [Code] . En uno de los manejadores, me gustaría poder recuperar el valor del nombre de aplicación (o, potencialmente, el valor de otros parámetros) definido en la sección [Setup] . ¿Hay alguna manera de hacer esto? He revisado la documentation , pero no he encontrado nada que me permita hacer esto. Nuestros archivos InnoSetup realmente son generados por nuestro proceso de compilación, que une fragmentos que son comunes entre todos nuestros programas y que son específicos del programa, por lo que sería inconveniente tener que definir constantes en el código de cada programa. ¿Hay alguna manera conveniente de hacer esto?

Estoy buscando algo como

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

Excepto que {AppName} no es una constante definida. ¿Hay alguna forma de consultar los parámetros definidos en la sección [Setup] ?


Es una constante de tiempo de compilación, no un valor de tiempo de instalación. Por lo tanto, puede utilizar el complemento Inno Setup Preprocessor para definir tales constantes. (Puede instalarlo fácilmente a través del paquete de inicio rápido ).

Define la constante:

#define AppName "Excellent Foo App"

Use la constante en [Setup] :

AppName={#AppName}

Y en el código de Pascal, no estoy totalmente seguro de la sintaxis, pero algo como:

MyString := {#AppName}

Actualización: Me di cuenta de que uno de mis scripts utiliza {#emit SetupSetting("AppId")} que es más fácil. La solución de Brian también descubrió este método, y es mejor.


Inspirado por la respuesta de Craig, estaba mirando la documentación del preprocesador de instalación de Inno (en ISTool, no disponible en línea por lo que he encontrado), y encontré la función de SetupSetting en el preprocesador.

Puede ser utilizado como tal:

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

Y mientras la sección [Setup] aparezca antes del lugar donde se usa (parece que ISPP es solo una pasada), e incluye una definición de AppName , esto dará los resultados que quiero, sin tener que definir una macro adicional para Cada ajuste que queremos extraer.