22

我用 Inno Setup 创建了一个安装程序。用于桌面快捷方式和开始菜单的图标嵌入在应用程序可执行文件中。

最初创建安装程序时,我没有设计团队提供的最终产品图标。在完成安装程序时,我使用了一个临时图标。

一切正常,直到我更改了最后一个图标。现在桌面快捷方式和开始菜单图标总是显示旧图标,即使其他地方的图标都是正确的。

这是脚本的图标声明部分。

[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 并重新启动机器,但这也没有效果。

世界上的旧图标是从哪里来的?它不在安装程序中。

任何人的想法?

4

2 回答 2

31

看来这确实与IconCache.db文件有关。我只能猜测某些事情没有按正确的顺序完成(尽管我不止一次尝试了不同的程序)。

以下是我手动执行重置的方式:

  • 单击开始按钮 > 按住Ctrl+Shift并右键单击开始菜单中的空白区域。
  • 选择“退出资源管理器”。
  • 按住Ctrl+ Shift+Esc键打开任务管理器。
  • 选择“文件”>“新任务”。
  • 键入:cmd(然后按Enter)。这将打开命令提示符。
  • 输入:(cd /d %userprofile%\AppData\Local然后按Enter
  • 输入:(attrib –h IconCache.db然后按Enter
  • 输入:(del IconCache.db然后按Enter
  • 输入:(start explorer然后按Enter

现在一切都按原样呈现。

于 2010-12-09T17:37:33.473 回答
10

正如 swirlywonder 的回答,这个批处理脚本应该自动化这个过程:

重建图标-cache.bat

@echo off
taskkill /IM explorer.exe /F
cd /d %userprofile%\AppData\Local
del IconCache.db /a
start explorer.exe
于 2013-01-31T21:31:17.580 回答