Miscellaneous Question

Avoid shortcut folder removal on msi uninstallation

03/31/2015 3487 views


I'm working in a packaging team using Installshield 2013, within a company where all application shortcuts are regrouped in one unique folder.

When we need through a .mst file to move a shortcut to this specific folder, in the shortcut management of Installshield, we need to recreate the folder into Shortcuts\TaskBar\Start Menu\Programs Menu\  and then create the shorcut inside this specific folder.
However, during the msi. uninstallation, this shortcut folder is deleted if this folder is found empty since the msi considers that he has created the folder through its installation.

On wise, there was a specific option to specify that a shortcut folder was already existing on the machine. Do you know if we have a way to do the same on Installshield?

Thanks !

Answer Summary:
1 Comment   [ + ] Show comment


  • Thanks for your reply, but i can't find this option on Installshield 2013. Are you using Installshield 2014?

Community Chosen Answer


Create the DIR structure in the ISM template (or and MST) so it can be used (or not used) for each product, and resulting MSI.

In the RemoveFile table make sure you are not forcing the removal of the folder. It should remove the shortcuts, and if the folder is empty, remove the folder.

If the folder is NOT empty it (and the existing shortcuts remain) will remain.
If the folder IS empty, it will be removed, and the next MSI that comes along will create it nicely??

Having just re read your question, that is exactly what I have described. So quite normal activity.

Heres the crux of it. To get past the ICE64 validation, InstallShield will be populating the RemoveFile table. As DeliveryBoy has mentioned, take out that entry and you will be fine.

This is all to do with the RemoveFileTable...

Answered 04/01/2015 by: Badger
Red Belt

All Answers

You are checking only your own msi package on a clean machine and saying that it is removing the shortcut folder when it becomes empty at the time of uninstall. obviously...This how it should be.. It should not be an issue at all.

You install some other package (which is delivering shortcut to the same folder) that was created by your team first and then install your package on top of it..
now, if you uninstall your package alone,  your shortcut folder will not be removed, your shortcut alone will be removed even if you have RemoveFile table entry for the shortcut's folder..
Windows installer knows that it is not an empty folder, so it will not remove that folder.. 

Answered 08/02/2015 by: jagadeish
Red Belt

Ensure that the component that creates the folder does only that - create the folder - and then mark that component as permanent.
Answered 04/01/2015 by: VBScab
Red Belt

  • Thanks for the tip ! But that's where i've a tricky behavior. If i create a component that stores the shortcut folder, and marked as permanent, as soon as i assign a shortcut within it, it is still removed during the msi removal in spite of the permanent status of the component that stores the folder.
    WIthout the shorcut, it remains as it should after the removal.
Take a look in the Files view of the component that contains the shortcut, I see this listed: ***Remove [DELETE_ME] if empty ***

If I delete this and rebuild and installl/remove then the empty shortcuts folder does not get deleted.
Answered 04/01/2015 by: deliveryboy
Orange Senior Belt

  • Thanks for your reply, but i can't find this option on Installshield 2013. Are you using Installshield 2014?
    • Microsoft used to create a hidden, zero byte file called something like mscreate.dir in folders to avoid them being deleted when empty. Just add a hidden zero byte file as a permanent component to go in the shortcuts folder and that should solve your problem.
    • Yes 2014 and a new project, not opening an existing package
      • Thaks a lot for all your answers. On Installshield 2013, this option does not exist at all, but removing the entry of the shortcut in RemoveFile helps to keep the shortcut folder after the application removal, and delete the shortcut itself. Exactly what i needed. Thanks
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ