跳转到内容

error code is 2503 或升级后图标变白 - CC Switch

Quick fix

修改 per-user-main.wxs 移除快捷方式 Icon="ProductIcon" 属性即可解决安装失败与升级后图标丢失问题;旧版用户需取消固定后重新固定。

报错原文
The installer has encountered an unexpected errorinstalling this package. This may indicate a problem withthis package. The error code is 2503.

该问题源于 CC Switch 3.19.0 的 WIX MSI 打包配置缺陷。模板 src-tauri/wix/per-user-main.wxs 中的桌面与开始菜单快捷方式均设置了 Icon="ProductIcon",强制 Windows Installer 将图标提取至 %APPDATA%\Microsoft\Installer\{ProductCode}\ 缓存目录。

由于构建使用 Product Id="*" 每次生成新 ID,且启用了 MajorUpgrade(升级即先卸载旧版),旧缓存目录会在升级时被清空。新安装时路径解析或权限冲突会直接抛出错误代码 2503;而任务栏固定的 .lnk 文件不受 MSI 组件更新机制保护,重启后系统重建图标缓存,因原路径文件已不存在,故显示为空白默认图标。

  1. 打开项目源码中的 src-tauri/wix/per-user-main.wxs 文件,定位到桌面快捷方式定义行。

    src-tauri/wix/per-user-main.wxs
    <Shortcut Name="CC Switch" Directory="DesktopFolder" Icon="ProductIcon" ... />
    <Shortcut Name="CC Switch" Directory="DesktopFolder" ... />
  2. 删除文件中另一处开始菜单快捷方式的 Icon="ProductIcon" 属性,保存后重新执行构建命令生成新的 MSI 安装包。

  3. 已安装旧版的用户请右键点击任务栏上的空白图标选择“从任务栏取消固定”,随后重新运行新版 MSI 完成升级,再次将应用固定到任务栏即可恢复。

Toolcc-switch
Version3.19.0
PlatformsWindows
为什么 NSIS 安装包(setup.exe)不受影响?
NSIS 安装程序不依赖 Windows Installer 的 ProductCode 机制管理快捷方式图标,因此不会在升级时误删图标缓存文件。
修复发布后,已经损坏的任务栏图标会自动恢复吗?
不会。该修复仅能防止新版本出现此问题。已受影响用户的 .lnk 文件内已写死失效路径,必须手动“取消固定 → 重新固定”一次才能读取到新 exe 的正确图标。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。