升级安装后,Vista/Win7资源管理器快捷方式中的应用程序图标损坏

3
可能重复:
在 Windows 7 上错误的桌面快捷方式图标 (Inno Setup) 我使用 Inno Setup 安装程序部署了一个应用程序。当我执行升级安装(即在已安装版本 1.0 的情况下运行 install-1.5.exe)时,如果我的应用程序二进制文件正在使用中(即我的应用程序正在运行,或者可能是其他某个进程锁定了映像文件),那么重新启动后,在资源管理器中会遇到图标缓存损坏的问题。资源管理器在桌面和开始菜单上显示我的应用程序的空白/默认快捷方式图标。
我们在互联网上搜索并找到了各种“厨房水槽”方法来刷新资源管理器图标缓存,但没有一种方法在所有操作系统上都是完全可靠的。因此,我们更希望找出导致这种损坏的原因并治愈病源,而不是治疗症状。
这在 Windows Vista 和 Windows 7 中发生,但不会在 Windows XP 中出现。
特别地,当由资源管理器刷新文件关联时,损坏“生效”。这可能是立即的(如果在 Inno 脚本中设置了 ChangesAssociations=yes),也可能是稍后的。
有人遇到过这种情况吗?我们不明白为什么会出现这种图标缓存损坏。

原来这个问题与此相同:https://dev59.com/TW855IYBdhLWcg3wViy3,我们想知道是否有一种方法可以避免这种情况的发生,而不是强制终止资源管理器、删除图标缓存并重新启动(这对于安装程序来说并不是一个优雅的解决方案)。谢谢! - DSII
2个回答

1
尽管需要重新启动 explorer.exe,但以下批处理脚本不需要重新启动即可生效:

rebuild-icon-cache.bat

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

0

按照以下步骤清除Windows 7的图标缓存:
1)在命令行中输入“cleanmgr”
2)选择您的Windows所在的本地磁盘(默认为“C:\”)
3)等待...
4)选中“缩略图”复选框并取消所有其他复选框
5)从“任务管理器”(默认为Ctrl + Shift + Esc)中结束“explorer.exe”进程
6)单击cleanmgr中的“确定”按钮,然后等待。

如果此帖子对您有帮助,请投票!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接