我很难理解Windows资源管理器中用户固定的快捷方式与Windows安装程序的关系。我的印象是用户固定快捷方式完全由用户处理,但是当安装程序快捷方式被删除时,Windows安装程序似乎会找到(并修改)用户固定的快捷方式。
这基本上是两个相关的问题,一个与早期卸载计划相关,并与晚期计划有关,特别是更改版本之间的早到晚。
示例:Application v1.0在桌面上安装了一个未公布的快捷方式,并使用msi内部的图标。然后用户执行任务栏"。任务栏和桌面快捷方式现在都引用从msi复制到图标缓存中的图标,例如%SystemRoot%\Installer\{CB24D097-4E8F-4E8E-8FE3-EACF5954DE56}\MyApp.ico
。
应用程序通过主要升级升级到v2.0,后期计划删除v1。用户固定的快捷方式不会被破坏/删除,即使图标(大概是?)只属于v1安装程序,保持相同的图标?为什么这样做?是否存在将来删除缓存图标的风险,从而破坏用户固定的快捷方式?
如果应用程序使用早期卸载以前版本的主要升级从v1.0升级到v2.0,则应用程序(临时)删除安装程序提供的快捷方式桌面,东西也破坏了用户固定的快捷方式。我找到的唯一解决方法(不能以编程方式将快捷方式恢复到位)是让安装程序不删除快捷方式,而是通过执行<RemoveFile on="uninstall">
快捷方式删除.lnk 。 (见Wix - Do Not Remove Pinned Taskbar on Install)
现在,这个hack适用于一系列主要升级,这些升级都会提前安排卸载,并且如前面几段所述 - 后期调度似乎总是在没有黑客的情况下工作 -
但是,如果v1.0已经附带 late 卸载,并且v2.0是第一次提前卸载以前的版本,该怎么办?
有什么方法可以影响V2.0 msi中v1.0的卸载?具体来说,我可以以某种方式说服v1.0卸载跳过删除快捷方式步骤吗?