我的第一个版本中有这个组件:
<ComponentGroup Id="ProgramMenuComponents" Directory="PROGRAMMENUFOLDER">
<Component Id="ApplicationShortcut">
<Shortcut Id="ApplicationStartMenuShortcut" Name="$(var.ProductName)" Icon="icon.ico" Description="$(var.ProductName)" Target="[InstallFolder]$(var.MyApp.TargetFileName)" WorkingDirectory="InstallFolder"/>
<RemoveFolder Id="PROGRAMMENUFOLDER" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\MyCo\MyApp" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
<Shortcut Id="UninstallProduct" Name="Uninstall $(var.ProductName)" Target="[SystemFolder]msiexec.exe" Arguments="/x [ProductCode]" Description="Uninstalls $(var.ProductName)" />
</Component>
</ComponentGroup>
我已删除了下一版本的UninstallProduct
元素。现在,当我安装第一个版本时,对第二个版本进行重大升级,然后卸载快捷方式。如何确保在主要升级时删除它(甚至在卸载之前)。主要升级安排afterInstallExecute
(必须保持这种情况)。
<MajorUpgrade Schedule="afterInstallExecute"/>
答案 0 :(得分:1)
通过使用RemoveFile元素删除快捷方式修复:
<ComponentGroup Id="ProgramMenuComponents" Directory="PROGRAMMENUFOLDER">
<Component Id="ApplicationShortcut">
<Shortcut Id="ApplicationStartMenuShortcut" Name="$(var.ProductName)" Icon="icon.ico" Description="$(var.ProductName)" Target="[INSTALLFOLDER]$(var.MyApp.TargetFileName)" WorkingDirectory="INSTALLFOLDER"/>
<RemoveFile Id="RemoveOldUninstallShortcut" On="both" Name="[My shortcut file name].lnk" />
</Component>