0

已执行以下步骤:

  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 得到了更新,并创建了新的快捷方式“v. 1.0.1”。但是,旧快捷方式“v. 1.0.0”仍保留在“DesktopFolder”和“ProgramMenuFolder”上。

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

4

1 回答 1

1

最简单的方法是不在快捷方式名称中添加版本。请参阅Windows UX 指南

避免在程序名称中加入版本号,除非用户通常这样称呼您的程序。


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

在小升级期间,旧版本没有被卸载,这就是快捷方式没有更新的原因。

于 2012-05-15T06:33:07.630 回答