Неправильный значок ярлыка на рабочем столе в Windows 7 (Inno Setup) - PullRequest
21 голосов
/ 09 декабря 2010

Я создал установщик с помощью Inno Setup. Значок, используемый для ярлыка на рабочем столе и меню «Пуск», встроен в исполняемый файл приложения.

Когда изначально был создан установщик, у меня не было иконки конечного продукта от команды разработчиков. Вместо этого я использовал временную иконку после завершения установки.

Все работало как надо, пока я не сменил иконку на финальную. Теперь на рабочем столе ярлыки и значки меню «Пуск» всегда отображают старый значок, хотя в других местах значок правильный.

Это раздел объявления Icon скрипта.

[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}

Вот что я пробовал: (Это система Windows 7)

Если я посмотрю на свойства ярлыка и выберу "изменить значок", то увижу правильный значок. Повторный выбор не имеет никакого эффекта. Я также попытался выбрать значок, связанный с диском, а затем повторно выбрать правильный на ... все еще показывает старый.

Я следовал советам удалить IconCache.db и перезагрузить компьютер, но это также не имеет никакого эффекта.

Откуда в мире взялась старая икона? Это нигде в установщике.

Идеи кому-нибудь?

Ответы [ 2 ]

31 голосов
/ 09 декабря 2010

Похоже, это действительно было связано с файлом IconCache.db. Я могу только догадываться, что что-то не было сделано в правильном порядке (хотя я несколько раз пробовал разные процедуры).

Вот как я выполнил сброс вручную:

  • Нажмите кнопку Пуск> Удерживайте Ctrl + Shift & Щелкните правой кнопкой мыши пустую область в меню Пуск.
  • Выберите «Exit Explorer».
  • Удерживайте Ctrl + Shift + Esc , чтобы открыть диспетчер задач.
  • Выберите «Файл»> «Новое задание».
  • Введите: cmd (и нажмите Введите ). Откроется командная строка.
  • Введите: cd /d %userprofile%\AppData\Local (и нажмите Введите )
  • Введите: attrib –h IconCache.db (и нажмите Введите )
  • Введите: del IconCache.db (и нажмите Введите )
  • Введите: start explorer (и нажмите Введите )

Теперь все отображается так, как должно.

10 голосов
/ 01 февраля 2013

Как и в ответе swirlywonder, этот пакетный скрипт должен автоматизировать процесс:

восстановление-значок-cache.bat

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