use*_*062 14 installation installer taskbar wix windows-7
在安装或主要升级期间,如果用户已将应用程序固定到其任务栏,则在安装完成后,将从\ AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar中删除任务栏快捷方式并在其位置留下空白文件图标(请参见下面的图像链接).单击该图标将提示用户删除,因为它没有任何目标.
http://i.stack.imgur.com/kz1zW.png
我想在安装或运行主要升级时根本不删除任务栏快捷方式.我们每周推出更新,如果任务栏快捷方式在每次更新期间中断,则可能会令人沮丧.
这可能吗?我已经读过有关修改RemoveExistingProducts的值(即从InstallValidate更改为InstallFinalize),但我不确定这是否可行.
谢谢.
我们遇到了此问题,我们的调查表明,在卸载或重大升级时删除相应的快捷方式时,msiexec.exe会明确删除固定的项目。
解决方法是,我们执行以下操作:
RemoveShortcuts使用以下WiX代码禁用标准操作:
<InstallExecuteSequence>
<RemoveShortcuts>0</RemoveShortcuts>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)<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>
Run Code Online (Sandbox Code Playgroud)它似乎工作正常。
您可以通过禁用标准RemoveShortcuts来避免自定义操作,如下所示:
<InstallExecuteSequence>
<RemoveShortcuts>Installed AND NOT UPGRADINGPRODUCTCODE</RemoveShortcuts>
</InstallExecuteSequence>
Run Code Online (Sandbox Code Playgroud)
这会禁用删除卸载以外的快捷方式.
Jus*_*ess -2
我不确定你可以采取什么措施来防止它发生,但这至少可以帮助你更换它。此方法使用登录脚本,但您应该能够使用 wix 实现此方法
\n\n\n\n\n\nWindows 7 任务栏固定图标存储在以下位置
\n\n文件系统:%APPDATA%\\Microsoft\\Internet Explorer\\快速启动\\用户\n固定\\任务栏
\n\n注册表:\n [HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Taskband]\n 要部署它,您可以执行以下步骤:
\n\n\n
\n- 将 Windows 7 系统上的固定项目配置为参考计算机。
\n- \n
将注册表项导出到 pinned.reg 文件: [HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Taskband]\n 并复制“%APPDATA%\\Microsoft\\Internet Explorer\\”中的项目快速\n启动\\用户固定\\任务栏”到共享文件夹。
- \n
创建登录脚本来部署注册表项并复制相应的文件。请注意,\n \xe2\x80\x9c%APPDATA%\\Microsoft\\Internet Explorer\\Quick Launch\\User Pinned\xe2\x80\x9d\n 文件夹仅在用户将图标固定到\n 在登录脚本中,您需要创建\n \xe2\x80\x9c%APPDATA%\\Microsoft\\Internet Explorer\\Quick Launch\\User\n Pinned\\TaskBar\xe2\ x80\x9d 文件夹(如果不存在)。