I have spent a lot of time analyzing the problem and have come to the following conclusing of how to reproduce the problem.
I use InstallAware 8.01 and the computer where I have reproduced the problem is a Windows XP Sp2 (English).
1. Create a new InstallAware project (I used the Basic template)
2. This project has as default a shortcut located under $SHORTCUTFOLDER$ to uninstall the application. Keep this shortcut unmodified and create a new shortcut with the exact same properties except use $DESKTOPDIR$ as Link Location.
- Code: Select all
Create Shortcut $DESKTOPDIR$\\Uninstall BasicSetupTest to $UNINSTALLLINK$
Create Shortcut $SHORTCUTFOLDER$\\Uninstall BasicSetupTest to $UNINSTALLLINK$
3. Compile and run the install on the test computer with a user account that is local admin on the computer. On the page “Select Program Folder” in the wizard make sure you have selected to Install this application for “All Users”.
4. When the installation is complete you have 2 shortcuts, one on the desktop and on under the Start menu.
If you look more closely at the shortcuts you can see both are located on the harddrive in subfolder the to directory C:\\Documents and Settings\\All Users\\
5. Now UnInstall the application by right click the setup .exe file and select “Run as”. Run the installer with another user account than you used when you installed the software, make sure this second user also is an local admin on the computer.
6. After the uninstallation you can see that the shortcut on the desktop was not removed but the shortcut under the start menu was removed without any problems.
So if you install and uninstall the application using the same user account everything works without problem. But if you use a different user account for installation and uninstalling shortcuts under the start menu as successfully removed, but shortcuts on the desktop are not removed.
I hope you understand what I mean and if not let me know and I will try to explain better. I have also attached the testprojekt I have created for this example.
The reason this is a problem for me is that we “push” the installation on the clients from a server. From the server we install a temporary Service on each client that runs under the user account “Localmachine”, this service automatically installs the application in the background. When the user later uninstalls the application they do it manually and that is when my problem was found. This “push” installation that we use is very use full when you need to install/update aloft of client at the same time. When manually installation and uninstalling the application with 2 diffrent user account you simulate what happends during our "Push" installation.