WiX小型升级如何移除Windows 7任务栏固定快捷方式?

3
每次更新WiX到新版本后,某些原因会从任务栏中删除固定的开始菜单快捷方式。我该如何解决这个问题?
使用以下命令创建了快捷方式:
   <DirectoryRef Id="ProgramMenuFolder">
      <Component Id="GitExtensions.newstartmenu" Guid="*">
        <Shortcut
          Id="GitExtensions.newstartmenu"
          Name="$(var.ProductName)"
          Description="$(var.ProductName)"
          Icon="gitextensions.ico"
          Target="[INSTALLDIR]GitExtensions.exe"
          WorkingDirectory="INSTALLDIR"/>
        <RegistryValue
          Root="HKCU" Key="$(var.InstalledRegKey)"
          Name="GitExtensions.newstartmenu" Value="" Type="string"
          KeyPath="yes"/>
      </Component>
    </DirectoryRef>

WiX代码: https://github.com/gitextensions/gitextensions/blob/f9490e3e6e34cc2f6770fd9e1d6132cf5cfd0b0b/Setup/Product.wxs#L385-L399

安装程序是用VS2010 + WiX 3.5构建的。

1个回答

6
它实际上正在进行重大升级,通过提前安排RemoveExistingProducts,升级会在安装新版本之前删除旧版本。当删除旧快捷方式时,shell会删除固定项。您可以尝试将RemoveExistingProducts的安排延迟,但请注意,这样做会有相关成本

WiX 3.8或3.9中是否仍处于实验阶段,或者是否有新的内容来保留现有的任务栏图标?如果没有,您能否更详细地说明需要做什么? - Uflex
@BobArnson 在您的博客文章中,似乎推迟调度RemoveExistingProducts的“成本”是升级永远无法删除早期版本中存在的任何文件。这段话意味着即使是“主要升级”,也是如此:“您可以通过简单地使用主要升级来避免次要升级的成本。如果您使用RemoveExistingProducts标准操作的“早期”调度,则可以删除文件。”如果是这样,这是否意味着完全不可能进行升级,既(a)从旧版本中删除某些文件,又(b)不会破坏用户固定的任务栏条目? - peterflynn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接