I'm looking for a MSI-based toolkit to create installers for my company products and AI looks promising. Yet, I can't find some crusial info regarding Vista/UAC in the manual. Yep, some basic explanations are there but real-life problems are much deeper.
Let's consider the following scenario.
1) UserA installs my software. Its destination folder is \Program Files\MyCompanyName\MyProductName. Since installer is Vista-aware, it tells OS that it requires Admin privileges (otherwise it won't get write permissions to write to Program Files). In other words, Vista will run this software elevated. Another reason it has to be elevated is because it contains some COM objects and therefore needs write permissions to HKCR and HKLM.
2) Software being installed intensively uses two things on per-user basis: registry values under HKCU and its own subdirectory that it creates in the user profile. In other words software has to be run under regular user credentials (UserA in our case) except the case when it registers itself as a COM object in other words when it runs with -RegServer/-UnregServer argument it needs admin rights.
3) Installer I want to create should be friendly and let user launch software at the final step.
4) Uninstaller should remove/cleanup all the things the installer and software created.
Now the questions:
-Will installer created with AI run software under UserA credentials at the final installation step (see p3)? I have some doubts because installer runs elevated (with admin privileges).
-How to tell uninstaller where to look for HKCU entries created by software? I can't just tell HKCU because it will be admin's HKCU in this case, since uninstaller is elevated too. It's more appropriate to scan all HKU, but it's not clear how to do this.
-How to tell the uninstaller where to look for subdirectories the software created in user profiles? It's my undestanding that if I leave it by default it will try to delete subdirectories in Admin user profile because uninstaller will be run elevated. It's more appropriate to scan all user profiles but it's not clear how to achieve this.
-jv