Были выполнены следующие шаги:
- Setup1.msi был построен в VS2005 + WiX 3.0 (.NET Framework 2.0).
- Версия 1.0.0.0 была установлена программой Setup1.msi.
- Для незначительного обновления был собран Setup2.msi (Setup2.msi отличается от Setup1.msi ТОЛЬКО в ProductVersion = "1.0.1.0")
Были подготовлены следующие файлы Patch.wx:
<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 и созданы новые ярлыки «v. 1.0.1». Однако старый ярлык «v. 1.0.0» остался как в «DesktopFolder», так и в «ProgramMenuFolder».
Как я могу заставить патч удалить старый ярлык?
Заранее благодарим.