在安装或主要升级期间,如果用户已将应用程序固定到其任务栏,则在安装完成后,将从 \ AppData \ Roaming \ Microsoft \ Internet Explorer \ Quick中删除任务栏快捷方式启动\用户固定\任务栏并在其位置留下空白文件图标(请参见下面的图像链接)。单击该图标将提示用户删除,因为它没有任何目标。
http://i.stack.imgur.com/kz1zW.png
我想在安装或运行主要升级时完全不删除任务栏快捷方式。我们每周推出更新,如果任务栏快捷方式在每次更新期间中断,则可能会令人沮丧。
这可能吗?我读过有关修改RemoveExistingProducts的值(即从InstallValidate更改为InstallFinalize),但我不确定这是否可行。
感谢。
答案 0 :(得分:5)
您可以通过禁用标准RemoveShortcuts来避免自定义操作,如下所示:
<InstallExecuteSequence>
<RemoveShortcuts>Installed AND NOT UPGRADINGPRODUCTCODE</RemoveShortcuts>
</InstallExecuteSequence>
这会禁用删除卸载以外的快捷方式。
答案 1 :(得分:4)
我们遇到了此问题,我们的调查显示msiexec.exe在卸载或重大升级时删除了相应的快捷方式时显式删除了固定项。
作为解决方法,我们执行了以下操作:
使用以下WiX代码禁用标准RemoveShortcuts
操作:
<InstallExecuteSequence>
<RemoveShortcuts>0</RemoveShortcuts>
</InstallExecuteSequence>
为我们安装的每个快捷方式添加了显式<DeleteFile>
条目。例如:
<DirectoryRef Id="ProgramMenuDir">
<Component Id="Component" Guid="B7469BFC-BF2A-4AF7-9DF5-3458BB485F18">
<Shortcut Id="Shortcut" Name="My Supper App"
Directory="ProgramMenuDir" Target='MyApp.exe' />
<RemoveFile Id="RemoveShortcut"
Name="My Supper App.lnk"
On="uninstall" />
</Component>
</DirectoryRef>
似乎工作正常。
答案 2 :(得分:-1)
我不确定你能做些什么来防止它发生,但这可能会帮助你至少更换它。此方法使用登录脚本,但您应该能够使用wix
实现此方法Windows 7任务栏固定图标存储在以下位置
文件系统:%APPDATA%\ Microsoft \ Internet Explorer \ Quick Launch \ User 被钉扎\任务栏
注册表: [HKEY_CURRENT_USER \软件\微软\的Windows \ CurrentVersion \ Explorer中\ Taskband] 要部署它,您可以执行以下步骤:
- 将Windows 7系统上的固定项目配置为参考计算机。
将Reigtry Key导出到pinned.reg文件:[HKEY_CURRENT_USER \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Taskband] 并复制“%APPDATA%\ Microsoft \ Internet Explorer \ Quick”中的项目 将\ User Pinned \ TaskBar“启动到共享文件夹。
- 醇>
创建登录脚本以部署注册表项并复制相应的文件。请注意 “%APPDATA%\ Microsoft \ Internet Explorer \ Quick Launch \ User Pinned” 只有在用户将图标固定到任务栏后才会创建文件夹。 在登录脚本中,您需要创建 “%APPDATA%\ Microsoft \ Internet Explorer \ Quick Launch \ User 固定\ TaskBar“文件夹(如果它不存在。