2010-12-09 27 views
20

He creado un instalador con Inno Setup. El ícono utilizado para el acceso directo y el menú de inicio del escritorio está incrustado en el ejecutable de la aplicación.Icono de acceso directo de escritorio incorrecto en Windows 7 (Configuración de Inno)

Cuando se creó inicialmente el instalador, no tenía el ícono del producto final del equipo de diseño. Usé un ícono temporal en su lugar mientras completaba el instalador.

Todo funcionó como debería hasta que cambié el icono para el final. Ahora, los íconos del menú de acceso directo e inicio del escritorio siempre muestran el ícono anterior a pesar de que en todos lados el ícono es correcto.

Esta es la sección de declaración de icono de la secuencia de comandos.

[Icons] 
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}; WorkingDir: {app} 
Name: {group}\{cm:UninstallProgram,{#MyAppName}}; Filename: {uninstallexe}; IconFilename: {app}\Icons\stop.ico 
Name: {commondesktop}\{#MyAppVersionName}; Filename: {app}\{#MyAppExeName}; Tasks: desktopicon; WorkingDir: {app} 

Aquí es lo que he intentado: (Se trata de un sistema Windows 7)

Si miro a las propiedades del acceso directo y seleccione "Cambiar icono" Veo el icono correcto. Volver a seleccionarlo no tiene ningún efecto. También intenté seleccionar un ícono relacionado con la disy luego volver a seleccionar el correcto en ... aún muestra el anterior.

He seguido sugerencias para eliminar IconCache.db y reiniciar la máquina, pero esto tampoco tiene ningún efecto.

¿De qué parte del mundo proviene el icono anterior? No está en ninguna parte en el instalador.

Ideas anyone?

+0

La manera en que su pregunta está escrito me lleva a creer que esto es todo ocurriendo en una sola computadora con Windows 7. ¿Has intentado reconstruir el archivo Inno Setup con el nuevo ícono y ejecutarlo en una * segunda * computadora? ¿Esto todavía muestra el ícono viejo? –

+1

He instalado esta aplicación tanto en Windows XP "virgen" como en una máquina con Windows 7. Ambos renderizan el icono correctamente. ¿Qué podría estar almacenando el icono anterior en mi máquina? Simplemente se niega a morir ... – swirlywonder

+0

Publica la sección [Iconos] de tu script de instalación, quizás eso ayude. ¿Su ejecutable solo contiene el icono que desea usar (es decir, no el icono temporal que no desea)? – Bernard

Respuesta

30

Parece que esto de hecho estaba relacionado con el archivo IconCache.db. Solo puedo adivinar que algo no fue hecho en el orden correcto (aunque intenté diferentes procedimientos más de una vez).

Así es como he realizado el reinicio manualmente:

  • clic en el botón de inicio> Mantenga pulsado Ctrl + Shift & Haga clic derecho en el área vacía en el menú de inicio.
  • Seleccione "Exit Explorer".
  • Mantenga Ctrl +Shift +Esc llaves para abrir el Administrador de tareas.
  • Seleccione "Archivo"> ​​"Tarea nueva".
  • Tipo: cmd (y presione Ingrese). Esto abrirá el símbolo del sistema.
  • Tipo: cd /d %userprofile%\AppData\Local (y pulse Introduzca)
  • Tipo: attrib –h IconCache.db (y pulse Introduzca)
  • Tipo: del IconCache.db (y pulse Introduzca)
  • Tipo: start explorer (y pulse Enter)

Ahora todo se rende justo como debería.

+5

Es un error en Windows (Win7 y Vista también, como recuerdo). El ícono del caché de íconos no se da cuenta cuando todo el EXE ha cambiado (no solo el ícono), incluso a través de reinicios. Otro error es que si creas el acceso directo antes de que exista el código, el intérprete de comandos almacena en la caché un ícono genérico y lo usa para siempre hasta que forzar manualmente el estúpido objeto para que vuelva a generar el caché. –

+0

Parece un error bastante malo ... Especialmente para estar presente en dos lanzamientos importantes. – swirlywonder

+1

@Leo: Creo que estoy de acuerdo contigo porque he visto esto antes. ¿Has archivado un informe de error sobre esto (o conoces alguno que haya sido archivado)? –

8

Al igual que en la respuesta de swirlywonder, esta secuencia de comandos por lotes debe automatizar el proceso:

reconstruir-icono-cache.bat

@echo off 
taskkill /IM explorer.exe /F 
cd /d %userprofile%\AppData\Local 
del IconCache.db /a 
start explorer.exe 
Cuestiones relacionadas