WIX产品卸载时文件资源管理器报错,求自动返回上级目录方案
解决卸载后文件资源管理器路径失效报错的方案
方法1:修改产品卸载脚本(推荐,精准解决)
如果有权限调整产品的卸载逻辑,在卸载流程的最后添加代码,自动将停留在失效路径的资源管理器窗口切换到C:\Program Files:
- 编写如下VBScript代码,保存为
NavigateToParent.vbs:
Set shellApp = CreateObject("Shell.Application") For Each win In shellApp.Windows ' 匹配失效的产品路径,替换为你的实际路径即可 If InStr(win.LocationURL, "C:\Program Files\Product") > 0 Then win.Navigate "C:\Program Files" End If Next
- 在卸载脚本的末尾添加调用命令:
wscript "NavigateToParent.vbs"
如果不想用VBScript,也可以用批处理重启资源管理器并打开目标目录(会关闭所有资源管理器窗口,需注意):
taskkill /f /im explorer.exe start explorer.exe "C:\Program Files"
方法2:卸载前手动切换目录(临时应急)
执行卸载操作前,主动把文件资源管理器导航到C:\Program Files,再通过「添加或删除程序」启动卸载,这样卸载后资源管理器不会停留在已被删除的路径上,自然不会触发报错。
方法3:全局禁用资源管理器路径记忆(影响所有窗口)
打开注册表编辑器(运行regedit),定位到HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced:
- 右键新建DWORD(32位)值,命名为
DisableRestoreSession - 将数值数据设置为
1,点击确定 - 重启资源管理器后,它将不再记住上次打开的路径,启动时会回到默认目录,避免因路径失效报错。
内容的提问来源于stack exchange,提问作者milanb
相关产品推荐
相关产品推荐

