Inno Setup tiene el parámetro de línea de comando /LOG="filename"
. ¿Puedo especificar un nombre de archivo de registro desde el script Inno Setup, para poder incluirlo más adelante en mis informes de errores?¿Cómo puedo iniciar sesión en las instalaciones de Inno Setup?
17
A
Respuesta
16
Puede establecer la opción SetupLogging
(SetupLogging=yes
) y luego integrar el siguiente código en su secuencia de comandos para copiar el registro en alguna parte.
procedure CurStepChanged(CurStep: TSetupStep);
var
logfilepathname, logfilename, newfilepathname: string;
begin
logfilepathname := ExpandConstant('{log}');
logfilename := ExtractFileName(logfilepathname);
newfilepathname := ExpandConstant('{app}\') + logfilename;
if CurStep = ssDone then
begin
FileCopy(logfilepathname, newfilepathname, false);
end;
end;
10
Siguiendo el comentario de Lars que utiliza el procedimiento DeinitializeSetup()
, pero también me cambió la nueva ruta del archivo a utilizar la constante {src}
para copiar el archivo de registro en el directorio que el instalador se ejecuta de en vez de {app}
constante que puede/no puede crearse si el usuario cancela la instalación:
// Called just before Setup terminates. Note that this function is called even if the user exits Setup before anything is installed.
procedure DeinitializeSetup();
var
logfilepathname, logfilename, newfilepathname: string;
begin
logfilepathname := ExpandConstant('{log}');
logfilename := ExtractFileName(logfilepathname);
// Set the new target path as the directory where the installer is being run from
newfilepathname := ExpandConstant('{src}\') + logfilename;
FileCopy(logfilepathname, newfilepathname, false);
end;
Cuestiones relacionadas
- 1. ¿Cómo puedo usar GetVolumeInformation en Inno Setup?
- 2. ¿Cómo uso "código" en la sección [Archivos] de Inno Setup?
- 3. Inno Setup página personalizada
- 4. ¿Es posible 'Pin para iniciar el menú' usando Inno Setup?
- 5. Hook estándar Inno Setup checkbox
- 6. Inno Setup: ¿Cómo veo la salida (traducción) del preprocesador Inno Setup?
- 7. ¿Cómo puedo hacer que Inno Setup ignore los directorios vacíos?
- 8. Inno-setup 32bit y 64bit en uno
- 9. Constante Inno Setup en el Código Sección
- 10. Inno Setup Comprobación del proceso en ejecución
- 11. ¿Inno Setup para el servicio de Windows?
- 12. Inno Setup Instalación y configuración de IIS
- 13. Inno-Setup: cómo dejar que el usuario elija si desea iniciar automáticamente o no?
- 14. Salir de Inno Setup Instalación desde [código]
- 15. Inno Setup uninstall executable location and name
- 16. Inno Setup - Uso correcto de [Tipos], [Componentes] y [Tareas]
- 17. Inno Setup Renombrar archivo durante el embalaje
- 18. Inno Setup: cómo definir una matriz en const?
- 19. Inno Setup - Setting Java Environment Variable
- 20. Usando Inno Setup, ¿cómo importar un archivo .cer de certificado?
- 21. Crear un usuario restringido desde Inno Setup
- 22. ¿Cómo se muestra un hipervínculo en Inno Setup?
- 23. ¿Cómo obtener la hora local en Inno Setup?
- 24. ¿Se pueden usar variables de entorno en scripts Inno Setup?
- 25. ¿Cómo generar un nuevo GUID en Inno Setup?
- 26. Script Inno Setup para copiar carpetas
- 27. Inno Setup: ¿cómo puedo hacer que mi programa se ejecute cuando un usuario inicia sesión en Windows?
- 28. ¿Cómo puedo iniciar sesión y encontrar las consultas más caras?
- 29. Inno Setup: Ocultar/Deshabilitar Componente en tiempo de ejecución
- 30. Cómo obtener la dirección IP local usando Inno-setup
¿De verdad cree que es necesario volver a calcular las rutas y los nombres de archivos una y otra vez para cada paso de configuración? ¿Por qué no mover eso al bloque 'if CurStep = ssDone then'? –
+1 Mittheil! He usado tu consejo, pero llama a DeinitializeSetup. Luego, el registro se copia incluso si el usuario sale de la instalación antes de instalar cualquier cosa. – Lars