2012-05-14 2 views
0

Следующие шаги были выполнены:WiX незначительные обновления не удаляет старый ярлык

  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 был создан с помощью службы подсвечника, света, фонари и пиротехники.exe.

  6. Следующая команда была вызвана:

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

    В результате Program.exe был обновлен и новые ярлыки были созданы «v 1.0.1.». Однако старый ярлык «v. 1.0.0» остался как на «DesktopFolder», так и на «ProgramMenuFolder».

    Как я могу заставить патч удалить старый ярлык?
    Спасибо заранее.

ответ

1

Самый простой способ - не добавлять версию к сокращенному имени. См. Windows UX Guidelines:

Избегайте размещения номера версии в имени программы, если это не так, как пользователи обычно ссылаются на вашу программу.


В противном случае ваше небольшое обновление необходимо удалить ярлык старой версии и создать новый ярлык, указывающий на новую версию.

Во время незначительного обновления старая версия не удаляется, поэтому ярлык не обновляется.

+0

Спасибо, Алексей, похоже, RemoveFile решает проблему – user536443

Смежные вопросы