WiX次要升级不会删除旧的快捷方式

时间:2012-05-14 16:54:10

标签: wix wix3

已执行以下步骤:

  1. Setup1.msi已在VS2005 + WiX 3.0(.NET Framework 2.0)中构建。
  2. 版本1.0.0.0已由Setup1.msi安装。
  3. 为了进行小幅升级,已经构建了Setup2.msi (Setup2.msi与Setup1.msi的区别仅在于ProductVersion =" 1.0.1.0")
  4. 准备了以下Patch.wxs:

    <Patch
        AllowRemoval="no"
        Classification="Update"
        Comments="..."
        Description="..."
        DisplayName="..."
        Manufacturer="..."
        TargetProductName="...">
    
    <Media Id="1000" Cabinet="MyPatch.cab">
        <PatchBaseline Id="MyPatch" />
    </Media>
    
    <PatchFamily 
        Id="MyPatchFamily" 
        Version="1.0.1.0" 
        ProductCode="...THE SAME AS IN Setup1.msi..."            
        Supersede="yes">
    
        <ComponentRef Id="CMP_Program_EXE" />      
        <ComponentRef Id="CMP_Desktop_Shortcut" />      
        <ComponentRef Id="CMP_ProgramMenu_Shortcut" />
    </PatchFamily>
    </Patch>
    
  5. Patch.msp是在蜡烛,灯光,火炬和pyro.exe的帮助下创建的。

  6. 已调用以下命令:

    msiexec /p Patch.msp REINSTALL=ALL REINSTALLMODE=vomus
    

    结果,Program.exe被更新并且新的快捷方式&#34; v。 1.0.1&#34; 被创造。 但是,旧的快捷方式&#34; v。 1.0.0&#34;仍然在&#34; DesktopFolder&#34;并且 &#34; ProgramMenuFolder&#34;

    如何让补丁删除旧的快捷方式? 提前致谢。

1 个答案:

答案 0 :(得分:1)

最简单的方法是不向快捷方式名称添加版本。见Windows UX Guidelines

  

避免在程序名称中添加版本号,除非用户通常会引用您的程序。


否则,您的次要升级必须删除旧版本的快捷方式,并创建指向新版本的新快捷方式。

在次要升级期间,旧版本不会被卸载,这就是未更新快捷方式的原因。