已执行以下步骤:
准备了以下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>
Patch.msp是在蜡烛,灯光,火炬和pyro.exe的帮助下创建的。
已调用以下命令:
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;
如何让补丁删除旧的快捷方式? 提前致谢。
答案 0 :(得分:1)
最简单的方法是不向快捷方式名称添加版本。见Windows UX Guidelines:
避免在程序名称中添加版本号,除非用户通常会引用您的程序。
否则,您的次要升级必须删除旧版本的快捷方式,并创建指向新版本的新快捷方式。
在次要升级期间,旧版本不会被卸载,这就是未更新快捷方式的原因。